Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 8.02.2005 Ostrzeżenie: (0%)
|
Mam plik xml o nastpujcej postaci:
Wyciągam z niego informację zawartą w <b></b> za pomoca php5:
Z tym ze zamiast dostać to co chcę dostaje jakieś krzaki, zamiast polskich znaków. Wiem ze problem tkwi w standardzie kodowania. Wszystko robie pod windowsem, pliki xml w edytorze xmlspy. W przeglądarce, bez przetworzenia przez php są ok, tzn są polskie znaki. Może ktoś wie dlaczego tak się dzieje? ---------------------------------------------------------------------------------------------- Problem rozwiązał się sam. Chodziło o błedne kodowanie przez edytor, po zamianie na utf-8 juz działa Ten post edytował slawa 22.02.2006, 17:48:44 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 352 Pomógł: 0 Dołączył: 22.01.2006 Ostrzeżenie: (0%)
|
Też miałem ten problem, znalazłem na to takie na około rozwiązanie. Ogólnie mam wrażenie, że jest to błąd php.. ale nie mam pewności może to jest prawidłowe zachowanie. Do czego doszedłem:
Jak ładujesz poprzez DOMDocument->load() plik w innym kodowaniu niż utf-8 (oczywiście z nagłówkiem informującym o tym kodowaniu) DOMDocument ładuje ten plik prawidłowo, odczytuje kodowanie.. można to sprawdzić poprzez DOMDocument->saveXML() php wypluwa dokument w tym kodowaniu w jakim je dostał, żadnych krzaków nie ma. Jednak jeśli spróbujemy wyciągnąć z tego dokumentu zawartość, którejkolwiek gałęzi albo zrobimy DOMDocument->saveXML(node) gdzie node jest którąś z gałęzi dokumentu.. php wypluje już nam dane przyjmując, że dokument jest w kodowaniu utf-8.. czyli zamiast polskich znaków przesłanych w iso pojawią się krzaki. Jedyny sposób na to jaki znalazłem to rekonwertowanie zwróconego ciągu znaku spowrotem na iso. Do końca nie jest dla mnie jasne czemu ale to zadziałało.. przykładowo:
Po tym zabiegu wywołanie $node->nodeValue zwraca już dane tak jak tego oczekujemy. Ja na ten problem natrafiłem eksperymentując z innymi kodowaniami. Generalnie chociażby ze względu na powyższe uważam, że lepiej nie bawić się w xml'e zapisane w iso tylko przejść na kodowanie 'utf-8' które jest przecież domyślnym kodowaniem xml. Wtedy można uniknąć wielu podobnych problemów. Przykładowo jak wprowadzicie do zawartości gałęzi encje do znaków, które iso nie posiada? saveXML() zamieni wszystkie '&' na '& a m p ;' i nici z encji (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
slawa [xml/php5] Kodowanie - polskie znaki 22.02.2006, 13:52:42
splatch getElementsByTagName ma niewiele wspólnego z XPath... 27.02.2006, 19:52:33
Alkagar witam,
pisze tutaj bo szkoda zakładać nowego tema... 20.06.2006, 13:55:00
webik Witam do Alkagar
mialem ten sam problem sproboj u... 27.06.2006, 15:36:50
Alkagar Miałem to tylko, że to nie działa .
Ale udało mi ... 28.06.2006, 09:56:00
Alkagar No tak, z checią bym tak zrobił (znaczy zmienił ko... 28.06.2006, 11:46:21
mariuszn3 utf-8 jest domyślnym kodowaniem xml ale to nie zna... 28.06.2006, 11:53:33
Alkagar hmmm...
a czy mb_convert_encoding obsługuje konwer... 28.06.2006, 12:01:28
mariuszn3 hmm.. no właśnie mam wrażenie, że mb_convert_encod... 28.06.2006, 12:07:07
Alkagar 1) iconv na pewno nie obsługuje win1250 (99%).
2)... 28.06.2006, 12:14:57
mariuszn3 Kiedyś widziałem jakiś przykład, który stosował mb... 28.06.2006, 12:28:15
poncjusz Podpinam sie do tematu, rowniez mam problem z kodo... 28.06.2006, 23:04:13
mariuszn3 ale co Ci się krzaczy? Jak otwierasz zapisany plik... 28.06.2006, 23:09:22
poncjusz Tak otwierając dany plik, mam same krzaczki! J... 28.06.2006, 23:16:39
mariuszn3 ponawiam pytanie -> w czym oglądasz ten plik? M... 28.06.2006, 23:19:46
poncjusz Ogladam go w Zendzie, ale to nie o to chodzi, moge... 28.06.2006, 23:27:01
mariuszn3 Ok.. czy strona, którą wyświetlacz by sprawdzić po... 28.06.2006, 23:34:24
poncjusz Nie, kodowanie jest ustawione na stronie na iso-88... 28.06.2006, 23:38:13
mariuszn3 aha.. no to wszystko jasne. Dodajesz dane zapisane... 28.06.2006, 23:42:38
poncjusz Chyba nie o to chodzi do końca, bo np. w phpmyadmi... 29.06.2006, 09:15:48
mariuszn3 To nie ma znaczenia. phpMyAdmin zapewne informuje ... 29.06.2006, 11:15:07
Maslav Hej.
Mam podobny problem.
Generuję xml z bazy dany... 8.12.2006, 13:30:24 ![]() ![]() |
|
Aktualny czas: 2.04.2026 - 20:39 |