powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Преобразование кодировок UTF8 to WIN1251
5 сообщений из 5, страница 1 из 1
Преобразование кодировок UTF8 to WIN1251
    #38777303
Sufir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Суть:
Есть две БД. Первая в UTF8, вторая WIN1251. Из первой данные регулярно должны переноситься во вторую.
Собственно раньше и переносились нормально, пока первая так же была в 1251. Недавно первую переключили на UTF. Вторую переключить в ближайшее время возможным не представляется.

Всё, в принципе, нормально если указать client_encoding=WIN1251 в коннекте или воспользоваться функцией конвертации: convert (' string ', ' UTF8 ', ' WIN1251 ') но ровно до тех пор пока в строке не встретится символ отсутствующий в 1251.
В таком случае получаем ошибку: ERROR: character 0xcc81 of encoding "UTF8" has no equivalent in "WIN1251"

Может кто-то посоветовать, что можно сделать?

P.S.: Например в PHP есть возможность указать //IGNORE и символы которые не могут быть представлены в требуемой кодировке, будут просто удалены. Такой вариант был-бы идеален, в моём случае.
P.P.S.: Перенос осуществляется программой на С (не PHP) к исходникам которой доступа у меня нет. Я могу поменять только SQL-запросы получения и вставки данных и коннект, поэтому решение и нужно средствами БД.
...
Рейтинг: 0 / 0
Преобразование кодировок UTF8 to WIN1251
    #38777338
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sufir Суть:
P.P.S.: Перенос осуществляется программой на С (не PHP) к исходникам которой доступа у меня нет. Я могу поменять только SQL-запросы получения и вставки данных и коннект, поэтому.

Значит никак от слова совсем (если "решение и нужно средствами БД").

А так выгрузить в utf8 файл а дальше iconv в win1251 и загрузка.
...
Рейтинг: 0 / 0
Преобразование кодировок UTF8 to WIN1251
    #38790828
Sufir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk, фалы выгружать/загружать не вариант, перекачка идёт каждые 5-10 минут. Эдакая своеобразная форма реплики получается... В общем запилил на php, по крону запускаю.
...
Рейтинг: 0 / 0
Преобразование кодировок UTF8 to WIN1251
    #38790923
tadmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sufir,
у нас был проблема со старым приложением, которое ломалось от utf символов.
Сделали функцию: на входе текст, на выходе он же, но очищенный от не 1251 символов. Вы можете XML приводить к тексту,выпиливать из своего лишнее, потом обратно.

Код: plsql
1.
regexp_replace(in_Text, E'[^\\x0000-\\x007F\\x00A0\\x00A4\\x00A6\\x00A7\\x00A9\\x00AB\\x00AC\\x00AD\\x00AE\\x00B0\\x00B1\\x00B5\\x00B6\\x00B7\\x00BB\\x0401-\\x045f\\x0490\\x0491\\x2013\\x2014\\x2018\\x2019\\x201A\\x201C\\x201D\\x201E\\x2020\\x2021\\x2022\\x2026\\x2030\\x2039\\x203A\\x20AC\\x2116\\x2122]', '?', 'g');
...
Рейтинг: 0 / 0
Преобразование кодировок UTF8 to WIN1251
    #38791711
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что все хотят делать перекодировку чорти как.

в самой базе преобразование сделать.

чтобы избежать автоматической конвертации базой, можно ити через промежуточный тип бинари
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Преобразование кодировок UTF8 to WIN1251
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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