Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: AMFPHP i kodowanie znakow
Forum PHP.pl > Forum > Przedszkole
Cr3dO
Witam

Mam problem bo nie wiem który dokładnie plik za co jest odpowiedzialny.
Czy plik gateway.php, czy DataBaseNavigator - moja klasa/usługa amphp.

Obydwa pliki są ustawione na kodowanie ANSI a w pliku gateway.php jest linijka:

$gateway->setCharsetHandler("iconv", "ISO-8859-2", "ISO-8859-2");

w phpadminie ( wersja 2.11.4 )

jezyk polski
System kodowania znaków dla MySQL: UTF-8 Unicode (utf8);
System porównań dla połączenia MySQL: latin2_general_ci;

baza danych : cr3do_portfolio Metoda porównywania napisów: latin2_general_ci;
2 tabele blogtable i polltable Metoda porównywania napisów: latin2_general_ci;
w tabeli blogtable 2 pola: 'id' typu INT i 'entry' typu LONGTEXT
pole 'entry' oczywiscie Metoda porównywania napisów: latin2_general_ci;

i teraz jak dodaje dane przez phpmyadmina sa polskie znaki, jak dodaje przez moj skrypt ( DataBaseNavigator.php )
to gubi polskie znaki :\

za to jak w pliku gateway.php zmienie linijke na : $gateway->setCharsetHandler("none", "UTF-8", "UTF-8") i jego kodowanie na UTF-8
to mam efekt odwrotny, phpmyadminem dodaje, wyswietla bez polskich liter, skryptem, ok.

zarkecilem ale nie wiem co i jak juz ustawic by bylo OK, prosze o pomoc kogos kto kuma strukture amphp, czy ogolnie wie o co kaman w tym :\

EDIT

moja klasa

  1. <?php
  2.  
  3. class DataBaseNavigator {
  4.  
  5. function DataBaseNavigator () {
  6. }
  7.  
  8.  
  9. function returnData_blog () {
  10. mysql_connect('localhost','cr3do_anonim','***');
  11. mysql_select_db('cr3do_portfolio');
  12. $sql = "SET CHARSET latin2";
  13. mysql_query($sql);
  14. $query = "SELECT * FROM blogtable";
  15. $execute = mysql_query($query);
  16. $_arr = array();
  17. $_arr_id = array();
  18. $index = 0;
  19. while($row=mysql_fetch_array($execute)){
  20. $_arr['entry'][$index] = $row['entry'];
  21. $_arr['id'][$index] = $row['id'];
  22. $index++;
  23. }
  24.  
  25. return $_arr;
  26. }
  27.  
  28.  
  29.  
  30.  
  31. function updateComment_blog ($xml, $id) {
  32. mysql_connect('localhost','cr3do_anonim','***');
  33. mysql_select_db('cr3do_portfolio');
  34. $sql = "SET CHARSET latin2";
  35. mysql_query($sql);
  36. $query = "UPDATE cr3do_portfolio.blogtable SET entry = '$xml' WHERE blogtable.id = '$id' LIMIT 1";
  37. $execute = mysql_query($query);
  38. return 'i co, OK';
  39.  
  40. }
  41.  
  42.  
  43.  
  44. }
  45.  
  46. ?>
3dflash
Jeśli chodzi o pobieranie danych z bazy z polskimi znakami to tabele musza byc ustawione na utf-8 general ci a system porównywania także utf8 general wtedy w gateway dajesz iconv 8859-2 tak jak miałeś i powinno byc ok. gorzej w drugą stronę z tym mam jeszcze problem chodzi o np. przeszukiwanie bazy po wpisaniu polskiego znaku wywala zę nie ma chociaż ta sama funkcja sql przeprowadzona w myadmin wyświetla że jest rekord. Ogólnie amfphp jest strasznie oporny na znaki specjalne.
erix
Nie utf8_general_ci, tylko utf8_polish_ci, bo zamiast sortować a,ą,b,c,ć..., to będzie sortować a,b,c,ą,ć....
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.