PDA

Zobacz pełną wersję : Kodowanie znaków w plikach .xml



anet
02-04-2007, 15:35
Witam,
czy ktoś może wie, dlaczego kodowanie w plikach .xml będących w różnego rodzaju "instalkach" Joomli (komponenty, dodatki, moduły) zawiera czasem kodowanie takie:

<?xml version="1.0" encoding="iso-8859-2" ?>

lub jego brak, czyli takie, :

<?xml version="1.0" ?>

Jaki wpis jest poprawny w dodatkach dla:
Joomla! 1.0.11 Stable [ Sunbow ] 28 August 2006

Jaki to ma wpływ na spójność kodowania całej strony w Joomli - ?

PS
moj pierwszy głos na forum, proszę o wyrozumiałość...

zwiastun
02-04-2007, 15:56
Standardem kodowania plików xml jest iso-8859-1 lub utf-8
Jeśli nie ma okreśłonego kodowania, parser odczytje pliki zakodowane w iso-8859-1 bez kłopotu, w utf-8 z problemami, jeśli plik zawiera znaki z hjęzyków typu j.polski - stąd w takich przypadkach trzeba zadeklarować jawnie w instrukcji przetwarzania, jak plik jest kodowany.
Związek z kodowaniem witryny w zasadzie żaden. W zasadzie, bo system odczytuje pliki xml zgodnie z deklaracją kodowania. W praktyce bywa różnie.

donaldino3
09-02-2013, 17:11
Standardem kodowania plików xml jest iso-8859-1 lub utf-8
Jeśli nie ma okreśłonego kodowania, parser odczytje pliki zakodowane w iso-8859-1 bez kłopotu, w utf-8 z problemami, jeśli plik zawiera znaki z hjęzyków typu j.polski - stąd w takich przypadkach trzeba zadeklarować jawnie w instrukcji przetwarzania, jak plik jest kodowany.
Związek z kodowaniem witryny w zasadzie żaden. W zasadzie, bo system odczytuje pliki xml zgodnie z deklaracją kodowania. W praktyce bywa różnie.

Chyba nie bardzo kolego masz rację.
Prawidłowo odpowiedź powinna wyglądać w ten sposób, że jeśli w plikach .xml nie jest napisane kodowanie czyli wygląda to w ten sposób: <?xml version="1.0" ?> to domyślnym kodowaniem jest utf-8. Uzasadnienie? Bo tak jest zapisane w specyfikacji xml'a. Natomiast jeśli masz wiersz: <?xml version="1.0" encoding="iso-8859-2" ?> oznacza to że wtedy z domyślnego kodowania (utf-8) zmieniasz na iso-8859-2. Nie mniej jednak standardem jest utf-8 i radzę tego się trzymać. :-)

zwiastun
09-02-2013, 17:39
Gdybyś Kolego jeszcze zwrócił uwagę na datę odpowiedzi oraz uważniej przeczytał, jak ona brzmiała, to pewno zastanowiłbyś się nad stwierdzeniem:

Chyba nie bardzo kolego masz rację.
Udzielana wówczas odpowiedź wynikała z doświadczenia, a nie czytania specyfikacji, a - było jak było - gdy parser napotkał znaki diakrytyczne np. języka polskiego, to zgłaszał błędy.
Może problem brał się ze sposobu zapisania (w ISO, a nie w UTF)? Dziś to nie ma znaczenia.
Nie jestem historykiem programowania, ale pamiętam dokładnie stwierdzenia np. o funkcji htmlentitties, która obsługiwała wyłączeni znaki z zestawu ISO-8859-1 i w związku z tym nie działała poprawnie z dokumentami XML zawierającymi znaki spoza tego zestawu Pamiętam również, że musiałem do pewnego momentu w Joomla 1.0 zastępować xml_domit_parser.php, w pakietach kodowanych w utf-8, aby poprawnie interpretowane były pliki XML.
Pozdrawiam.

donaldino3
09-02-2013, 17:45
Co do daty - zgoda.
Natomiast specyfikacja xml'a jasno to stwierdza.
Napisałem o tym (nie przeciwko tobie) bo nie było to dopowiedziane a "ludzie" pewnie tutaj jeszcze nie raz trafią, mimo daty powstania tematu.

zwiastun
09-02-2013, 17:52
Nie ma problemu :)