Форум: "Начинающим";
Текущий архив: 2009.11.08;
Скачать: [xml.tar.bz2];
ВнизКодировка XML Найти похожие ветки
← →
mfender (2009-09-16 16:40) [0]Здравствуйте!
Создаю IXMLDocument из файла. В голове XML написано encoding="iso-8859-1". Соответственно, весь текст выглядит буквально следующим образом:
<title>ÐÎÑÍÎ ïðîäîëæèò â 2010 ãîäó ñòðàõîâàòü ñîòðóäíèêîâ "ÐóñÃèäðî"</title>
<keywords>* ÐÎÑÑÈß * ÐÓÑÃÈÄÐÎ * ÑÒÐÀÕÎÂÊÀ * ÑÎÒÐÓÄÍÈÊÈ *</keywords>
...и т.д...
Что нужно сделать, чтобы получить нормальный текст? Получаю RSS из другого источника - всё нормально, записываю в БД без каких-либо преобразований.
Спасибо.
← →
palva © (2009-09-16 16:52) [1]При encoding="iso-8859-1" это и есть нормальный текст. При показе в IE он так и должен выглядеть. Чтобы увидеть русские буквы нужен файл с указанием той кодировки которой эти русские буквы закодированы.
← →
mfender (2009-09-16 17:16) [2]я ж не в IE его смотрю, а создаю из него объект:
XMLDoc := LoadXMLData(TStringList(Resolve.Items[I]).Text);
где XMLDoc - IXMLDocument.
← →
sniknik © (2009-09-16 17:29) [3]> я ж не в IE его смотрю
а ты посмотри...
объект это кстати мелкосовтский, т.е. если нормально там, то и тут он отработает нормально.
> XMLDoc := LoadXMLData(TStringList(Resolve.Items[I]).Text);
???
через стринглист/стандартный стринг с автоприведением? ну так сам виноват. не выделывайся возьми TXMLDocument и пропиши у него FileName, хотя бы для теста.
← →
clickmaker © (2009-09-16 17:30) [4]> Что нужно сделать, чтобы получить нормальный текст?
iso-8859-5
← →
palva © (2009-09-16 18:23) [5]
> я ж не в IE его смотрю, а создаю из него объект
Ну раз ты написал, что "текст выглядит", значит ты его в чем-то смотришь. А если ты его не смотришь, тогда вопрос становится непонятным.
> Что нужно сделать, чтобы получить нормальный текст?
этот вопрос я понял так: "что нужно сделать, чтобы увидеть русские буквы". Но судя по заголовку твоего файла xml в нем не может быть русских букв. Там могут быть буквы разных европейских языков, которые по кодировке совпадают с русскими буквами. Эти европейские буквы ты и видишь, когда открываешь файл в IE.
Короче, мне непонятно, в чем заключается вопрос.
← →
mfender (2009-09-24 14:09) [6]Да, так вот, продолжаю тему. ))))
В IE такая же кракозябра
ÐÎÑÍÎ ïðîäîëæèò â 2010 ãîäó ñòðàõîâàòü ñîòðóäíèêîâ "ÐóñÃèäðî"
открываю notepad"ом и пишу encoding="windows-1251". После чего в IE всё становится нормально.
как-то это у меня плохо в голове укладывается....
← →
Медвежонок Пятачок © (2009-09-24 14:23) [7]я ж не в IE его смотрю, а создаю из него объект:
XMLDoc := LoadXMLData(TStringList(Resolve.Items[I]).Text);
Загружать xmldoc прямо с веб ресурса с рсс не пробовал? (как все нормальные люди делают)
← →
sniknik © (2009-09-24 14:49) [8]> открываю notepad"ом и пишу encoding="windows-1251". После чего в IE всё становится нормально.
> как-то это у меня плохо в голове укладывается....
похоже создан "левыми" методами, а то и "руками", в заголовке указана неправильная кодировка, не соответствующая тому в которой текст "тела", при чтении мелкомягкий объект по информации из заголовка конвертирует то, что в конвертации не нуждается... и все дела.
← →
mfender (2009-09-24 15:36) [9]
> Загружать xmldoc прямо с веб ресурса с рсс не пробовал?
> (как все нормальные люди делают)
если бы нормальные люди делали rss и давали бы его как нормальные люди... но они скидывают его нам на FTP, и содержимое его на RSS совсем не похоже.
← →
Медвежонок Пятачок © (2009-09-24 16:05) [10]и чего?
грузи с фтп. методу load() разницы нет никакой
← →
mfender (2009-09-24 16:39) [11]да разниы никакой. ну сделал я
XMLDoc := TXMLDocument.Create(<тут адрес>);
такая же фигня.
сделал
XMLDoc := TXMLDocument.Create(nil);
XMLDoc.LoadFromFile(адрес);
то же самое.
застрэлиться, что-ли?....
← →
Плохиш © (2009-09-24 17:01) [12]
> sniknik © (24.09.09 14:49) [8]
>
> > открываю notepad"ом и пишу encoding="windows-1251". После
> чего в IE всё становится нормально.
> > как-то это у меня плохо в голове укладывается....
> похоже создан "левыми" методами, а то и "руками", в заголовке
> указана неправильная кодировка, не соответствующая тому
> в которой текст "тела", при чтении мелкомягкий объект по
> информации из заголовка конвертирует то, что в конвертации
> не нуждается... и все дела.
Хм, эта фича такая "мелкомягкого объекта"? Или всё-таки все объекты для обработки xml поддерживают стандарт?
И по какому принципу определяют необходимость конвертации не "мелкомягкие объекты"?
← →
Плохиш © (2009-09-24 17:02) [13]
> mfender (24.09.09 16:39) [11]
> застрэлиться, что-ли?....
>
Для начала можно попросить "нормальных людей" использовать стандарты при создании xml.
← →
mfender (2009-09-24 17:23) [14]
> Для начала можно попросить "нормальных людей" использовать
> стандарты при создании xml.
уже с пол-месяца пытаюсь дозвониться. целая толпа каких-то чиновников переводят с одного телефона на другой, гоняют часами по кругу, а в результате кто-то просто не берёт трубку и приходится звонить заново на следующий круг.
[шёпотом]: контора называется РИА-Новости - информационное агентство, которое призвано к оперативности и всезнанию )))))
← →
mfender (2009-09-24 17:42) [15]это, конечно, извиняюсь, задница, но вот такой обходной маневр дал требуемый результат:
ST := TStringList.Create;
ST.LoadFromFile(Resolve[I]);
ST[0] := "<?xml version="1.0" encoding="windows-1251"?>";
XMLDoc := TXMLDocument.Create(nil);
XMLDoc.LoadFromXML(ST.Text);
← →
sniknik © (2009-09-24 17:52) [16]> Хм, эта фича такая "мелкомягкого объекта"? Или всё-таки все объекты для обработки xml поддерживают стандарт?
не все, оттого и проблемы. некоторые считают, что заголовок "чисто для красоты" и кодировку указывают не реальную, а "покрасивше выглядевшею".
← →
Плохиш © (2009-09-24 21:49) [17]
> mfender (24.09.09 17:42) [15]
Смотри, заголовок не обязан отделяться от остального текста переводом строки.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.11.08;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.006 c