v7: Внешняя компонента для работы с XML #222144


#0 by Babay
В этой компоненте идет работа с xml-файлами, у которых кодировка - win-1251. А если мне utf-8 хочется? Именно твоей компонентой хочется, а не DOM.
#1 by romix
Только что обновил для UTF-8 - посмотри плиз
#2 by Sasha_H
Ну думаю, что без ручной доводки тебе не обойтись !
#3 by romix
17.10.2006 12:21, размер 456 808 байт
#4 by Babay
Скачал, начал пробывать, напоролся на вот такое сообщение: ! OpenXML : Строка 1: Ожидается кодировка документа windows-1251 или utf-8 Я так подозреваю, что он ругается на это т.к. хэдер файла такой: т.е. ЯВНО не указана кодировка. Но в мануалах по xml написано, что, если кодировка явно не указана, то используется UTF-8 Исправь, пожалуйста
#5 by romix
Готово - теперь кодировку UTF-8 можно не указывать (она определяется по сигнатуре в начале файла).
#6 by Babay
Только что скачал, попробывал.... млиннн, опять не катит... Подробно написал тебе на мыло (которое ПМ указано)
#7 by romix
А кинь пожалуйста образчик XML. На моем образчике UTF-8 все работает и с заголовком, и без заголовка.
#8 by romix
Образчик в комплекте test_utf8.xml (с указанием кодировки) test_utf8_.xml (без указания кодировки)
#9 by Babay
С твоим файлом test_utf8_.xml всё работает, а с моим, который в письме прикреплён - нифига.
#10 by Babay
Я бы попробывал сам чё-нить придумать, но нет среды разработки
#11 by Babay
У тебя в коде для ситуации, когда указана кодировка отрабатывается вот это:   if g_TagName<>'<?xml?>' then begin     Error('Ожидается заголовок XML в формате <?xml ... ?>');   if g_utf8=0 then begin     if enc='windows-1251' then begin       g_utf8:=0;     end else if enc='utf-8' then begin       g_utf8:=1;     end else begin       Error('Ожидается кодировка документа windows-1251 или utf-8'); Может выть сюда и засунуть ситуацию, когда заголовок имеет такой вид: <?xml version="1.0" ?>
#12 by Babay
Я так подозреваю, что в случае с моим файлом строка: не отробатывается К сожалению, не могу проверить
#13 by romix
Вышлешь свой файл? У меня в письме ничего нет...
#14 by Babay
Выслал ещё раз. Смотри
#15 by romix
Файл оказался и без сигнатуры UTF-8, и без указания кодировки. 1С 8.0 кстати по-моему отказывается такие файлы открывать. Я добавил свойство КодировкаПоУмолчанию - если его выставить, то кодировка, если она не указана в файле, будет браться из этого свойства.
#16 by Sonic
ты когда нить спишь?
#17 by romix
Неа, я из расы неспящих :-)
#18 by Sonic
сова ты :)
#19 by Babay
Сейчас вот шёл на работу и думал: "А может сделать просто свойство 'Кдировка'..." Прихожу, и смотрю
#20 by Babay
А ссылку-то не обновил. только что скачал. В архиве - старая версия.
#21 by Babay
А какие значения может принимать свойство "КодировкаПоУмолчанию"?
#22 by romix
Сорри сейчас обновил
#23 by Babay
Млин, парадокс: русские символы в твоём xml - читаются нормально, в моём - бяка всякая... Подробнее в письме.
#24 by romix
Я проверил файл в письме. Читает следующее: </NUMBER> <ERROR_DESC> Причина: Дата ДТП не может быть позже, чем дата окончания действия полиса. </ERROR_DESC> Код для чтения:
#25 by Babay
Да, так работает. А почему xml.ПрочитатьЗначение("<ТекТэг>") даёт крякозябры, а xml.Символы - всё нормально?
#26 by Babay
Роман, спасибо тебе огромное! Не бросил в трудную минуту! И так оперативно всё делал... Ну, в общем, огромный тебе респект!
#27 by romix
Поправил и этот случай.
#28 by Babay
ЗАРАБОТАЛО!!!!
#29 by Babay
Действительно - ЗЛО!!! )
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С