Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.11.08;
Скачать: [xml.tar.bz2];

Вниз

Кодировка 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.006 c
2-1253510580
Иван Василич
2009-09-21 09:23
2009.11.08
КАк обратиться Query1 из Query2...... ADO


15-1252568155
tesseract
2009-09-10 11:35
2009.11.08
Репетиция дня пргораммиста


2-1253264946
dmitry1987
2009-09-18 13:09
2009.11.08
Проблема с SELECT (SQL)


2-1253603568
rnts
2009-09-22 11:12
2009.11.08
Символ # вместо букв


15-1252512460
Kostafey
2009-09-09 20:07
2009.11.08
Синхронизация Mercurial-репозитариев с ограничением





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский