Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.11.08;
Скачать: CL | DM;

Вниз

Кодировка XML   Найти похожие ветки 

 
mfender   (2009-09-16 16:40) [0]

Здравствуйте!

Создаю IXMLDocument из файла. В голове XML написано encoding="iso-8859-1". Соответственно, весь текст выглядит буквально следующим образом:

<title>&#208;&#206;&#209;&#205;&#206; &#239;&#240;&#238;&#228;&#238;&#235;&#230;&#232;&#242; &#226; 2010 &#227;&#238;&#228;&#243; &#241;&#242;&#240;&#224;&#245;&#238;&#226;&#224;&#242;&#252; &#241;&#238;&#242;&#240;&#243;&#228;&#237;&#232;&#234;&#238;&#226; "&#208;&#243;&#241;&#195;&#232;&#228;&#240;&#238;"</title>
 <keywords>* &#208;&#206;&#209;&#209;&#200;&#223; * &#208;&#211;&#209;&#195;&#200;&#196;&#208;&#206; * &#209;&#210;&#208;&#192;&#213;&#206;&#194;&#202;&#192; * &#209;&#206;&#210;&#208;&#211;&#196;&#205;&#200;&#202;&#200; *</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 такая же кракозябра

&#208;&#206;&#209;&#205;&#206; &#239;&#240;&#238;&#228;&#238;&#235;&#230;&#232;&#242; &#226; 2010 &#227;&#238;&#228;&#243; &#241;&#242;&#240;&#224;&#245;&#238;&#226;&#224;&#242;&#252; &#241;&#238;&#242;&#240;&#243;&#228;&#237;&#232;&#234;&#238;&#226; "&#208;&#243;&#241;&#195;&#232;&#228;&#240;&#238;"

открываю 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.014 c
2-1253525175
i2e
2009-09-21 13:26
2009.11.08
RS-232/ WaitCommEvent - как выйти?


11-1207381883
Сашик
2008-04-05 11:51
2009.11.08
Запись в ресурсы DLL


2-1253003813
новый
2009-09-15 12:36
2009.11.08
pointer. Не могу разобраться...


15-1252590582
=К=
2009-09-10 17:49
2009.11.08
Задачка


4-1221305909
Aggressor
2008-09-13 15:38
2009.11.08
Start->Run vs Start->cmd