XML & Cyrillic1251 encoding
8 отговора
195 прегледа
XML & Cyrillic1251 encoding
Имам проблеми с едни XML файлове. Записани са с windows-1251 encoding като ANSI... в php 4.3.4 всичко е тип-топ при парсването, но в PHP 5.0.2 някак парсъра конвертира всичко до utf-8. Използвам функцията xml_parse, във функциите за отваряне и затваряне на таг, а също и в _cdata няма нищо, което да кара скрипта да конвертира данните до utf8. Съдържанието на файловете го чета с file_get_contents, но там всичко е наред. Подозирам, че php 5 има някакви енкодинг проблеми.
Някой сблъсквал ли се е с подобен проблем? Засега реших въпроса с една функция, която конвертира от utf-8 към 1251.
ПС> Интересно, че ако запиша файловете като <?xml version="1.0" encoding="UTF-8"?> и избера UTF-8 encoding (било то в notepad || visual studio), PHP отказва да ги чете тия документи - empty document on line 1 in file....
конкретния ми въпрос е има ли начин да чета XML документ с вградените средства на РНР и някак да му укажа, че енкодинга е cp1251? Ако пробвам да подам енкодинг като ср1251 или windows-1251 на xml_parser_create, гърми с обяснението, че не поддържа такъв енкодинг - в документацията има само 3 изброени.
Някой сблъсквал ли се е с подобен проблем? Засега реших въпроса с една функция, която конвертира от utf-8 към 1251.
ПС> Интересно, че ако запиша файловете като <?xml version="1.0" encoding="UTF-8"?> и избера UTF-8 encoding (било то в notepad || visual studio), PHP отказва да ги чете тия документи - empty document on line 1 in file....
конкретния ми въпрос е има ли начин да чета XML документ с вградените средства на РНР и някак да му укажа, че енкодинга е cp1251? Ако пробвам да подам енкодинг като ср1251 или windows-1251 на xml_parser_create, гърми с обяснението, че не поддържа такъв енкодинг - в документацията има само 3 изброени.
Re: XML & Cyrillic1251 encoding
Cyrillic1251 is NOT VALID XML encoding
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Re: XML & Cyrillic1251 encoding
Да, знам. Но след като си конвертирам файловете към utf-8 (записвам ги като такива било то с notepad || visual studio) и след като съм указал encoding="UTF-8" ми дава empty document at line 1 като се опитвам да parse-на файла.
Така че продължавам да търся начин с РНР5 да обработвам кирилица в xml.
Така че продължавам да търся начин с РНР5 да обработвам кирилица в xml.
Re: XML & Cyrillic1251 encoding
Обикновенно Notepad като записва в Unicode слага някакви символи в началото. Отвори документа с някой друг редактор и ге изтрии.
Това би трябвало да ти реши проблема.
Това би трябвало да ти реши проблема.
Re: XML & Cyrillic1251 encoding
Това помогна... дотолкова доколкото не казва, че документа е празен. Но все пак се оказва, че извлечените от XML-a данни трябва да се конвертират към 1251. Иначе отново ги изкарва като utf-8 и не се визуализират коректно на страници, които са с charset windows-1251.
Редактирано от cluster_bg на
Re: XML & Cyrillic1251 encoding
Да, тава е нормално.
Защо не направиш страницата на UTF-8?
Защо не направиш страницата на UTF-8?
Re: XML & Cyrillic1251 encoding
Може и така да направя... яд ме е, че нещата си вървят на php 4.3.4 и 4.3.8, а на 5.0.2 не искат
5-цата само utf-8 признава. В смисъл, че дори и да е записан файла като 1251 пак конвертира данните до utf-8.
Re: XML & Cyrillic1251 encoding
iconv("UTF-8", "windows-1251", $offer_name[0]->get_content())
стискам палци да е разрешена там, където ще ти трябва ;-)
photo.cult.bg/torbalan
стискам палци да е разрешена там, където ще ти трябва ;-)
photo.cult.bg/torbalan
Re: XML & Cyrillic1251 encoding
От VS можеш да избереш UTF-8 with/without signature от File|Advanced save options.