Проблема перекодировки значений атрибутов XML (UTF-8 <--> 1251) | |
---|---|
tata Автор Сообщений: 3381 Откуда: Казань Дата регистрации: 23.10.2005 |
Имеем: БД на Postgresql c кодировкой UTF-8.
Данные выводим в XML (Центробанк требует в кодировке 1251). результат: <?xml version="1.0" encoding="windows-1251""?> <Ф0409118 xmlns="urn:cbr-ru:rep0409118:v3.0.4.5" УникИдОЭС="a15fde9e-b51b-4e29-b567-f4567f246420" ВидОЭС="" КодФормы="118" ОКУД="409118" ВидОтчета="" ОтчДата="2019-03-01" Периодичность="" ДатаВремяФормирования="2023-03-20T13:14:36.406029+03:00"><Составитель ВидОрг="ВидОрг" КодОрг="КодОргТип" КодТУ="КодТУ" БИК="БИК" ОКАТО="ОКАТО" ОКПО="ОКПО" ОГРН="ОГРН" СокрНаимен="СокрНаимен" Адрес="Адрес" ДатаПодписания="ДатаПодписания"><Руководитель Должность="РукДолжность" ФИО="РукФИО"/><ГлавБух Должность="БухДолжность" ФИО="БухФИО"/><Исполнитель ИсполнительДолжность="И&#x Есть ли какие-то рекомендации по правильному выводу русских символов в значениях атрибутов XML? Может, кто-то это уже проходил? ![]() |
Re: Проблема перекодировки значений атрибутов XML (UTF-8 <--> 1251) | |
---|---|
sphinx Сообщений: 30456 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Как выводите?
------------------ "Veni, vidi, vici!"(с) ![]() |
Re: Проблема перекодировки значений атрибутов XML (UTF-8 <--> 1251) | |
---|---|
tata Автор Сообщений: 3381 Откуда: Казань Дата регистрации: 23.10.2005 |
Разработка Сергея Сизова.
drop table if exists tmp_r; select r.*, gen_random_uuid() as v_guid, 'квартальная' as vidOES, cast('20190301' as date) as v_rep_period, 'quarter' as period into tmp_r from dh._report r where code = '118'; select xmlroot('', version '1.0" encoding="windows-1251"') as xmltext union all select xmlelement (name Ф0409118, XMLATTRIBUTES ( delta_xmlns AS xmlns, r.v_guid AS "УникИдОЭС", r.vidOES AS "ВидОЭС", r.code AS "КодФормы", r.okud AS "ОКУД", 'квартальный' AS "ВидОтчета", r.v_rep_period AS "ОтчДата", r.period AS "Периодичность", now() AS "ДатаВремяФормирования" ), xmlelement(name Составитель, XMLATTRIBUTES ( 'ВидОрг' as "ВидОрг", 'КодОргТип' as "КодОрг", 'КодТУ' as "КодТУ", 'БИК' as "БИК", 'ОКАТО' as "ОКАТО", 'ОКПО' as "ОКПО", 'ОГРН' as "ОГРН", 'СокрНаимен' as "СокрНаимен", 'Адрес' as "Адрес", 'ДатаПодписания' as "ДатаПодписания"), XMLELEMENT(name Руководитель, XMLATTRIBUTES('РукДолжность' as "Должность", 'РукФИО' as "ФИО")), xmlelement(name ГлавБух, XMLATTRIBUTES('БухДолжность' as "Должность", 'БухФИО' as "ФИО")), xmlelement(name Исполнитель, XMLATTRIBUTES('ИспДолжность' as "ИсполнительДолжность", 'ИспФИО' as "ФИО", 'Телефон' as "Телефон", 'Факс' as "Факс", 'ЭлПочта' as "ЭлПочта")) ), xmlelement(name Данные118, XMLATTRIBUTES('1' as "Ид")), --, query_to_xml(<запрос>)), xmlelement(name НетДанных, XMLATTRIBUTES('1' as "КодНепредставления")), xmlelement(name Пояснение, '', 'СтрокаПояснения') ) from tmp_r r Исправлено 1 раз(а). Последнее : tata, 20.03.23 15:24 ![]() |
Re: Проблема перекодировки значений атрибутов XML (UTF-8 <--> 1251) | |
---|---|
ssa Сообщений: 12922 Откуда: Москва Дата регистрации: 23.03.2005 |
Вот исправленный вариант:
Берите как образец создания отчетов в XML на Postgres. Вывод табичных данных тут замаскирован в
------------------ Лень - это неосознанная мудрость. ![]() |
© 2000-2023 Fox Club  |