![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Heh - rzadko zadaje tu pytania, ale trafiłem na problem, z którego nie do końca wiem, jak wybrnąć.
Przekładowy kod:
Odpalane poprzez: index.php?t=ąśżźć Wynik? Cytat Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[22021]: Character not in repertoire: 7 ERROR: invalid byte sequence for encoding "UTF8": 0xb9 HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".' in index.php:19 Stack trace: #0 index.php(19): PDO->exec('insert into t1 ...') #1 {main} thrown in index.php on line 19 I w sumie nie jest to dziwne, bo zapytanie wygląda mniej więcej tak: Cytat insert into t1 ( text ) values ( '����� ') Kilka uwag. Baza danych to postgres 8.2 oczywiście w UTF-8. Strona też jest w UTF-8. Używam danych z GET tylko dlatego, że wygodniej w ten sposób zasymulować problem z kodowaniem. Wiem oczywiście, że można łatwo skonwertować dane pochodzące z GET, tak by ten problem usunąć, jednak problem pozostanie, ponieważ nie tak łatwo jest zweryfikować wszystkie dane. Znalazłem pewien materiał na ten temat: http://www.phpwact.org/php/i18n/charsets dział: Checking UTF-8 for Well Formedness Ale niezbyt podoba mi się myśl, by każdy tekst od usera przepuszczać przez Cytat $t = iconv("UTF-8","UTF-8//IGNORE",$t); Znacie jakieś inne rozwiązania tego problemu? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 09:44 |