|
выгрузка в XML | ☑ | ||
---|---|---|---|---|
0
04347
28.06.16
✎
09:11
|
Выгружаю документы в XML файл.
Вот отрывок из кода ЗаписьXML = Новый ЗаписьXML(); ЗаписьXML.УстановитьСтроку("Windows-1251"); ЗаписьXML.ЗаписатьОбъявлениеXML(); Файл выгружается, заголовок <?xml version="1.0" encoding="WINDOWS-1251"?> но не понятная кодировка <acomp_name>Р?Рџ Козлов Рђ.РЎ.</acomp_name> <acomp_addr>670000, Бурятия Респ, Улан-РЈРґСЌ Рі, Дальненагорная СѓР», РґРѕРј в„– 62</acomp_addr> <car_type>ГАЗ 3302</car_type> Если убрать "Windows-1251", то нормально <acomp_name>ИП Иванов А.С.</acomp_name> <acomp_addr>670000, Бурятия Респ, Улан-Удэ г, </acomp_addr> <car_type>ГАЗ 3302</car_type> <car_num>М 020 КН</car_num> но тогда в заголовке нет encoding="WINDOWS-1251" <?xml version="1.0"?> Как исправить, чтобы было и <?xml version="1.0" encoding="WINDOWS-1251"?> и кириллица читаема |
|||
1
Ёпрст
28.06.16
✎
09:28
|
(0) открываешь потом xml чем хоть ?
Открой блокнотом, если нет спец-средств или вминяемого браузера, да смотри. |
|||
2
04347
28.06.16
✎
09:41
|
(1)я файл могу открыть, посмотреть и потом сохранить
АдресФайлаДанных = РезультатВыполнения.ХарактеристикиФайла.АдресФайлаРеализации; Элементы.ПолучитьФайлДанных.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Получить файл %1 (Документов %2 шт., ~%3 Кбайт)'"), ИмяФайла, Формат(РезультатВыполнения.ХарактеристикиФайла.КоличествоДокументов, "ЧН=0"), Формат(РезультатВыполнения.ХарактеристикиФайла.КоличествоСимволов/1024, "ЧДЦ=1; ЧН=0")); Элементы.ПолучитьФайлДанных.Доступность = Истина; |
|||
3
mehfk
28.06.16
✎
09:43
|
Это 3,14здец
ЗаписьXML.УстановитьСтроку("Windows-1251"); ЗаписьXML.ЗаписатьОбъявлениеXML(); |
|||
4
Мыш
28.06.16
✎
09:47
|
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("c:\docs\data.xml", "Windows-1251"); ЗаписьXML.ЗаписатьОбъявлениеXML(); |
|||
5
04347
28.06.16
✎
09:57
|
(3) а в чем 3.14? Пример обработки взят из БСП, называется _ДемоВыгрузкиДанныхВXMLФайлВБезопасномРежиме, и там тоже
ЗаписьXML = Новый ЗаписьXML(); ЗаписьXML.УстановитьСтроку(); ЗаписьXML.ЗаписатьОбъявлениеXML(); |
|||
6
04347
28.06.16
✎
09:59
|
(4) я не могу открыть файл по жесткому пути, файл у меня формируется, но потом пользователь сам указывает по гиперссылке где будет сохранен файл
|
|||
7
04347
28.06.16
✎
10:02
|
(1) а зачем открывать блокнотом? Я и так вижу, что кодировка не та, и затем при загрузке так и грузится Р?Рџ Козлов Рђ.РЎ, а не Иванов
|
|||
8
Мыш
28.06.16
✎
10:02
|
(6) можешь сохранить во временный файл. А потом пользователю передать результат.
|
|||
9
mehfk
28.06.16
✎
10:10
|
(5) Покажи код, который у тебя идет дальше:
ТекстXML = ЗаписьXML.Закрыть(); |
|||
10
mehfk
28.06.16
✎
10:12
|
И покажи результат выполнения этого кода:
ЗаписьXML= Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку("Windows-1251"); ЗаписьXML.ЗаписатьОбъявлениеXML(); ЗаписьXML.ЗаписатьНачалоЭлемента("Корень"); ЗаписьXML.ЗаписатьАтрибут("Атрибут", "Это я знаю и помню прекрасно"); ЗаписьXML.ЗаписатьКонецЭлемента(); ТекстовыйДокумент = Новый ТекстовыйДокумент; ТекстовыйДокумент.УстановитьТекст(ЗаписьXML.Закрыть()); ТекстовыйДокумент.Показать(); |
|||
11
04347
28.06.16
✎
10:12
|
(8) он у меня и записывается во временный файл с неправильной кириллицей
смотрю в СП Синтаксис: УстановитьСтроку(<ТипКодировки>) Параметры: <ТипКодировки> (необязательный) Тип: Строка. В качестве типа кодировки может быть указано имя одной из возможных кодировок. Это никак не влияет на формируемую строку. Но если будет записано объявление XML-документа, то объявление будет содержать атрибут 'encoding', имеющий соответствующее значение. Если же в качестве параметра указана пустая строка или ничего не указано, то атрибут 'encoding' не будет присутствовать в объявлении XML-документа. И пример оттуда ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(); // Запись документа XML |
|||
12
04347
28.06.16
✎
10:16
|
(9)
ЗаписьXML.ЗаписатьКонецЭлемента(); // Закрываем и сохраняем записанный объект XMLСтрокой = ЗаписьXML.Закрыть(); КоличествоСимволов = СтрДлина(XMLСтрокой); Сообщить("файл сформирован, нужно его сохранить! "); Сообщить(ИмяФайла); Возврат Новый Структура("XMLСтрокой, КоличествоДокументов, КоличествоСимволов", XMLСтрокой, КоличествоДокументов, КоличествоСимволов); и по гиперссылке пользователь его просматривает и сохраняет туда, куда ему нужно |
|||
13
mehfk
28.06.16
✎
10:18
|
Покажи код сохранения файла.
|
|||
14
04347
28.06.16
✎
11:12
|
(10)показать. Метод недоступен на сервере
|
|||
15
mehfk
28.06.16
✎
11:13
|
Это печально.
|
|||
16
04347
28.06.16
✎
11:14
|
(13)
// Закрываем и сохраняем записанный объект XMLСтрокой = ЗаписьXML.Закрыть(); КоличествоСимволов = СтрДлина(XMLСтрокой); Сообщить("файл сформирован, нужно его сохранить! "); Сообщить(ИмяФайла); Возврат Новый Структура("XMLСтрокой, КоличествоДокументов, КоличествоСимволов", XMLСтрокой, КоличествоДокументов, КоличествоСимволов); |
|||
17
mehfk
28.06.16
✎
11:15
|
Это не ответ на (13)
|
|||
18
04347
28.06.16
✎
11:17
|
(17) тогда не поняла, какой код?
|
|||
19
mehfk
28.06.16
✎
11:18
|
Где сохранение файла?
|
|||
20
mehfk
28.06.16
✎
11:21
|
В общем, пишите мой ник псина народ ру, подключусь удаленно.
|
|||
21
04347
28.06.16
✎
11:37
|
(20) отправила письмо
|
|||
22
04347
28.06.16
✎
12:07
|
(20) большое спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |