![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 12.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Napotkałem następujacy problem:
Serializuje dane (pobierane z bazy MySQL) do pakietów WDDX przy pomocy funkcji wddx_serialize_value() lub np. wddx_add_vars(). Serializowane dane są zakodowane w UTF-8 i problem polega na tym ze po serializacji dwa polskie znaki 'ą' i 'ć' są zastępowane znacznikami <char code='FFFFFF85'/> <char code='FFFFFF87'/>, ktore raczej nie sa kodami tych znakow w UTF-8. W wyniku tego po przeslaniu danych do klienta, dane sa niepoprawnie wyswietlane (a konkretnie zle sa wyswietlane te dwa znaki). Czy problem moze wynikac stad ze binaria php pod Windows moga miec niektore biblioteki skompilowane domyslnie np dla ISO-8859-1? Testowalem to w srodowisku Windows i nie sprawdzilem jeszcze jak dziala serializacja danych w unikodzie pod Linuxem. Będę wdzięczny za wszelkie podpowiedzi |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 12.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
W dokumentacji php znalazłem już informację że WDDX domyślnie koduje
znaki w ISO-8859-1 i to było przyczyną tego błędu. Można to kodowanie zmienić za pomocą funkcji setlocale() - jednak nie mogę za jej poomocą ustawić kodowania UTF-8. Czy jest to wogóle możliwe? Nie dzialają np. wywolania (zwracają FALSE): [php:1:ceeaf3c716] setlocale (LC_ALL, 'UTF-8'); [/php:1:ceeaf3c716] albo [php:1:ceeaf3c716] setlocale(LC_ALL, 'pl_PL.UTF-8'); [/php:1:ceeaf3c716] Czy ktoś próbować serializować dane w UTF-8 do pakietów WDDX i czy się to udało? I czy da się za pomocą setlocale ustawić kodowanie UTF-8 ? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 12:49 |