powered by simpleCommunicator - 2.0.43     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проблема русских букв в xmlelement
12 сообщений из 12, страница 1 из 1
Проблема русских букв в xmlelement
    #39837885
sergnn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите решена ли проблема русских букв в XML функциях?
Ну то есть, чтобы результирующий XML содержал именно русские буквы а не коды?
...
Рейтинг: 0 / 0
Проблема русских букв в xmlelement
    #39838370
GeniyZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Postgresql 11.2
Debian 11.2-1.pgdg90+1

Проблем нет
...
Рейтинг: 0 / 0
Проблема русских букв в xmlelement
    #39838386
sergnn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GeniyZ, То есть, хотите сказать если postgres стоит по Линуксом, то проблемы нет?
...
Рейтинг: 0 / 0
Проблема русских букв в xmlelement
    #39838531
jan2ary
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergnn,

Опишите вашу конкретную проблему, лучше с тестовым сценарием.
...
Рейтинг: 0 / 0
Проблема русских букв в xmlelement
    #39838610
sergnn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jan2ary,
Код: plsql
1.
SELECT xmlelement(name row, xmlattributes(test)) from  (select 'Привет' as test) tt



Имеем в результате :
Код: xml
1.
<row test="&#x3F0;&#x88A5;т"/>



а хотелось бы:
Код: xml
1.
<row test="Привет"/>



Говорю сразу, это не для выдачи результата в броузер или куда нить на сервер приложений,
где всё это безобразие автоматом перекодируется в нормальный текст.
Задача получить именно XML с текстом, а не кодами.

В принципе проблему решили с помощью написания функции, которая тупо перекодирует всё это безобразие.
Но коряво как то это всё...
...
Рейтинг: 0 / 0
Проблема русских букв в xmlelement
    #39838633
GeniyZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я так, как вы не баловался - все атрибуты у нас только латиницей. Русские в атрибутах кодируются, как и у вас.

В силу того, что возможности указания кодировки XML нет, то это как-бы правильно.

Однако с содержимое узлов в кирилице отображается как есть:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
psql (11.2 (Debian 11.2-1.pgdg90+1))
Введите "help", чтобы получить справку.

gasu=> SELECT xmlelement(name row, xmlattributes(test)) from  (select 'Привет' as test) tt
;
                        xmlelement
----------------------------------------------------------
 <row test="&#x41F;&#x440;&#x438;&#x432;&#x435;&#x442;"/>
(1 строка)

gasu=> SELECT query_to_xml($$ select 'Привет' as test $$, true, true, '');
                        query_to_xml
-------------------------------------------------------------
 <row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">+
   <test>Привет</test>                                      +
 </row>                                                     +
                                                            +

(1 строка)

gasu=>
...
Рейтинг: 0 / 0
Проблема русских букв в xmlelement
    #39838678
sergnn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GeniyZ,
Интересно, только мне нужен свмозакрывающийся тег row внутри которого перечисленные поля таблицы как атрибуты, а не как внутренние теги.
Конечно можно вывести и так ,а потом стринг обработать, но перекодировка получается в моём случае хоть и коряво, но менее коряво.
...
Рейтинг: 0 / 0
Проблема русских букв в xmlelement
    #39838684
sergnn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GeniyZ,
Я понимаю, что мои хотелки несколько странные, но проблем в том ,что перелезаем на postres с древней версии sybase. А там сформированный таким образом XML используется для электронной подписи документов. И приходится формировать как там. Так что прошу тапками не кидаться.
...
Рейтинг: 0 / 0
Проблема русских букв в xmlelement
    #39839089
sergnn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GeniyZ,
Ещё интереснее результат запроса в примере это если поставлена кодировка 1251,
и получается полная ерунда на самом деле
а если кодировка - UTF8 то получается:
Код: xml
1.
<row test="&#x41F;&#x440;&#x438;&#x432;&#x435;&#x442;"/>


то есть вменяемые коды, которые хотя бы можно интерпретировать.

Как вся это лабуда работает абсолютно не понятно!!!!
...
Рейтинг: 0 / 0
Проблема русских букв в xmlelement
    #39839097
sergnn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GeniyZ,
Если бы можно было кодовую страницу для этих функций указывать...
...
Рейтинг: 0 / 0
Проблема русских букв в xmlelement
    #39839346
GeniyZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну вот в том-то и дело, что нет возможности указать кодировку - поэтому PostgreSQL "на всякий случай" кодирует.

Ну, справедливости ради, не PostgreSQL, а libxml2.

В целом, это конечно баг. Информация у базы о кодировке есть, а у libxml2 есть необходима информация и возможности не кодировать, если не надо. Видимо PostgreSQL не передаёт какие-то параметры.
...

Так что пока живём так. Мало-ли может когда-нибудь исправятся.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Проблема русских букв в xmlelement
    #40140768
ultrasonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В настройках панели для просмотра значений (F7) надо поставить галочки "Перенос слов" и "Автоформатирование"

PostgreSQL 16.8
Галочки.png
...
Изменено: 07.05.2025, 13:36 - ultrasonic
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проблема русских букв в xmlelement
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]