Тип поля XML. Непонятен вопрос с кодировками

Всем добрый день. Столкнулся с проблемой.
Есть база в кодировке 1251, есть таблица с полем XML, туда нужно положить данные в кодировке UTF-8 что бы перекодирования не произошло. Все делают на C++ через libpq. Отправляю данные через параметры.
После того как зову PQExecParams он мне говорит что невалидная xmlка. Формат данных - бинарный выставлен, если выставить текстовый то вообще скажет что переконвертировать из 1251 в utf8 не может. В чем проблема или куда копать в какую сторону

XMLка самая обычная:

<?xml version="1.0" encoding="UTF-8"?>
<Файл Версия="1.0">

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

> Есть база в кодировке 1251,

> Есть база в кодировке 1251, есть таблица с полем XML, туда нужно положить данные в кодировке UTF-8 что бы перекодирования не произошло
Вот с этого места подробней. Как вы себе это представляете?
В UTF-8 символов много больше, чем в cp1251, каким образом они могут там сохраниться без перекодировки?

Кстати вот это читали:
http://postgresql.ru.net/manual/datatype-xml.html#AEN7509

В общем я бы начал без C++ и libpq. Для начала попробуйте руками через чистый SQL. Когда чего-то добъётесь, можно будет переходить на C++.

Как раз это и читал. SQLный

Как раз это и читал. SQLный запрос напрямую пытался провести через слона, специально в запрос вставлял INSERT.... и дальше кракозябры UTFные. Он мне ругался что нет в 1251 нет такого то символа из UTF-8 что и логично. Пока что ни в каком варианте не получится вставить xmlку UTFную в базу, это весь печально=(

Все становится еще интереснее

Все становится еще интереснее =) Заставил я таки принять его, но сначала ему не нравилось что в начале BOM наисан( кто не в курсе, означает что этот текст или файл находится в формате UTF ). Хрен с ним, убрал бом - и получил в итоге что на сервере файл лежит в UTF ( заголовок об этом свидетильсвует ), хотя я уже не знаю верить ему или нет. НО запрашивая обратно он мне отдает в кодировке 1251 как и написано в доке, спрашивается нафиг тогда нужен такой тип данных

Потому что года как три

Потому что года как три БОЛЬШИНСТВО работает с UTF-8. Если база в UTF-8, то и проблем становится значительно меньше.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023