Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> AMFPHP i kodowanie znakow
Cr3dO
post
Post #1





Grupa: Zarejestrowani
Postów: 154
Pomógł: 0
Dołączył: 13.07.2007
Skąd: łódź

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował Cr3dO 25.05.2008, 14:15:03


--------------------
Pesymista widzi ciemny tunel. Optymista widzi światełko w tunelu. Realista widzi światło pociągu. Maszynista widzi trzech debili na torach.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
-3dflash-
post
Post #2





Goście







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.
Go to the top of the page
+Quote Post
erix
post
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Nie utf8_general_ci, tylko utf8_polish_ci, bo zamiast sortować a,ą,b,c,ć..., to będzie sortować a,b,c,ą,ć....


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 11:34