Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Serializacja do WDDX danych w UTF-8
agmic
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
agmic
post
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 ?
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 12:49