powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / русский язык в xml?
9 сообщений из 9, страница 1 из 1
русский язык в xml?
    #36746048
Weed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
select
xmlelement(name foo,
xmlattributes('скобки <> english русский текст"' as bar)
);

возвращает:
"<foo bar="скобки <> english русский текст""/>"

как бы ей сказать что у меня везде UTF-8 и можно выдавать русский язык прямо как он есть, без оверхеда?
...
Рейтинг: 0 / 0
русский язык в xml?
    #36746052
Weed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хаха, форум пропарсил ввод как если бы это был html :)

приложил картинкой вывод как он есть
...
Рейтинг: 0 / 0
русский язык в xml?
    #36746149
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Weedкак бы ей сказать что у меня везде UTF-8 и можно выдавать русский язык прямо как он есть, без оверхеда?Никак, текущая реализация PG и libxml2 иногда друг друга не совсем понимают :-\
...
Рейтинг: 0 / 0
русский язык в xml?
    #36746271
Weed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ёш,

а какова природа этого бага? (о нём, кстати, репортили?)

очень обидная проблема - такой классный способ генерировать сайты вообще без написания кода обламывается!..
...
Рейтинг: 0 / 0
русский язык в xml?
    #36746277
Big Andy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Weed,

Почему обламывается? То, что браузер его (полученный код) правильно интерпретировал, говорит как раз о другом.

Потом можно переписать libxml :D
...
Рейтинг: 0 / 0
русский язык в xml?
    #36746404
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Weedа какова природа этого бага?Если взять вот этот вот пример: http://www.xmlsoft.org/examples/testWriter.c можно заметить что перед тем как писать атрибут в выходной поток с помощью xmlTextWriterWriteAttribute сначала устанавливается кодировка выходного потока через xmlTextWriterStartDocument(writer, NULL, MY_ENCODING, NULL) postgres этого не делает.

И libxml2 почему-то считает что хотя кодировка по умолчанию UTF8 ей нужно экранировать все значения атрибута не попадающие в latin1 если не указана кодировка выходного документа, не знаю почему... Это можно проверить если закоментировать xmlTextWriterStartDocument в примере, получится такой же вывод как и у Вас. Всё это вместе накладывается и приводит к такому результату.

Но просто вызывать что-то типа xmlTextWriterStartDocument(writer, NULL, pg_server_encoding(), NULL) перед xmlTextWriterWriteAttribute — мало, потому что после xmlTextWriterStartDocument выходной поток станет полным документом, с заголовком <?xml version="1.0" encoding="КОДИРОВКА"?> который postgres'у совершено не нужен, его нужно будет вырезать из результата перед возвращением из xmlattributes.
Weed(о нём, кстати, репортили?)Я писал об этом в pgsql-hackers но не в виде бага, просто как замечание, на исправлении не настаивал :) Лучше напишите pgsql-bugs.
...
Рейтинг: 0 / 0
русский язык в xml?
    #36747019
Weed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Big AndyWeed,

Почему обламывается? То, что браузер его (полученный код) правильно интерпретировал, говорит как раз о другом.


говорит о том что на форуме не испольузется xml при возврате постов и вообще не парсится юзерский пост при выдаче на предмет этих символов :)
...
Рейтинг: 0 / 0
русский язык в xml?
    #36747021
Weed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЁшWeedа какова природа этого бага?Если взять вот этот вот пример: http://www.xmlsoft.org/examples/testWriter.c можно заметить что перед тем как писать атрибут в выходной поток с помощью xmlTextWriterWriteAttribute сначала устанавливается кодировка выходного потока через xmlTextWriterStartDocument(writer, NULL, MY_ENCODING, NULL) postgres этого не делает.

И libxml2 почему-то считает что хотя кодировка по умолчанию UTF8 ей нужно экранировать все значения атрибута не попадающие в latin1 если не указана кодировка выходного документа, не знаю почему... Это можно проверить если закоментировать xmlTextWriterStartDocument в примере, получится такой же вывод как и у Вас. Всё это вместе накладывается и приводит к такому результату.

Но просто вызывать что-то типа xmlTextWriterStartDocument(writer, NULL, pg_server_encoding(), NULL) перед xmlTextWriterWriteAttribute — мало, потому что после xmlTextWriterStartDocument выходной поток станет полным документом, с заголовком <?xml version="1.0" encoding="КОДИРОВКА"?> который postgres'у совершено не нужен, его нужно будет вырезать из результата перед возвращением из xmlattributes.
Weed(о нём, кстати, репортили?)Я писал об этом в pgsql-hackers но не в виде бага, просто как замечание, на исправлении не настаивал :) Лучше напишите pgsql-bugs.

но и кодировку выходного документа указывать не ясно как

в принципе баг не мешает но текстовый трафик рискует увеличиться на треть или даже на половину что неприятно

багрепорт напишу наверно как жара спадёт :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
русский язык в xml?
    #39462196
igorbasic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Weedбагрепорт напишу наверно как жара спадёт :)
Написали? До сих пор мучаемся с этим багом...
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / русский язык в xml?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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