powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Ошибка перекодирования
9 сообщений из 9, страница 1 из 1
Ошибка перекодирования
    #35195256
mik_sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Люди, кто-нибудь решил эту проблему???

Сервер: 8.3
Кодировка базы: ISO_8859_5
Кодировка клиента: WIN1251

при использовании функции convert на части русских букв (например Ё) вылетает ошибка:

ERROR: character 0x90 of encoding "WIN1251" has no equivalent in "MULE_INTERNAL"

Причем совершенно неважно в какую кодировку конвертировать.
На версии 8.0 таких проблем нет - все замечательно.
...
Рейтинг: 0 / 0
Ошибка перекодирования
    #35195923
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
написал багрепорт: http://archives.postgresql.org/pgsql-bugs/2008-03/msg00155.php


--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
Ошибка перекодирования
    #35196356
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не помню в какой версии, в постгресе сделали строгое конвертирование из одной кодировки в другую.
Например.
В кодировке КОИ8 нет знака номер (№), а в WIN1251 он есть. До определенной версии постгреса этот знак нормально сохранялся в базе, а потом перестал сохраняться, так как знака номер (№) в таблице символов кодировки КОИ8 нет.
Возможно, это и в Вашем случае.

Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 
...
Рейтинг: 0 / 0
Ошибка перекодирования
    #35196387
mik_sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
возможно. Но что делать дальше?
...
Рейтинг: 0 / 0
Ошибка перекодирования
    #35196420
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mik_smвозможно. Но что делать дальше?
1) править исходники
2) изменить кодировку бд
3) смириться
4) другое :)
...
Рейтинг: 0 / 0
Ошибка перекодирования
    #35196507
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в данном случае скорее сего это ошибка в таблицах/функции конвертирования, потому что не работает просто для русского алфавита... без всяких доп. символов.

я тестировал вот эту строку и она НЕ сконвертировалась:
абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ


--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
Ошибка перекодирования
    #35196515
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ёшскорее сего это ошибка в таблицах/функции конвертированияВозможно, так оно и есть.
Да прибудет с нами UTF :)
...
Рейтинг: 0 / 0
Ошибка перекодирования
    #35196778
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нашёл ошибку, в таблице конвертирования ISO_8859_5 во внутреннее представление отсутствует буква Ё и ё, вот патч для 8.3 на файл src/backend/utils/mb/conversion_procs/cyrillic_and_mic/cyrillic_and_mic.c
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
*** cyrillic_and_mic.c.org	 2008 - 03 - 18   02 : 16 : 35 . 000000000  + 0300 
--- cyrillic_and_mic.c	2008-03-18 02:19:16.000000000 +0300
***************
***  483 , 489  ****
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
! 		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  		0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa,
  		0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0,
--- 483,489 ----
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
! 		0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  		0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa,
  		0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0,
***************
***  493 , 499  ****
  		0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
  		0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde,
  		0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1,
! 		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
  	};
  
--- 493,499 ----
  		0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
  		0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde,
  		0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1,
! 		0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
  	};
  
кстати символ номера тоже не сконвертируется, я его не патчил так как насколько я понял - для кирилицы во внутреннем представлении convert'а используется... koi8-r... в котором он отсутствует. специалисты в списке рассылки пока молчат :)

ps: да utf решает, только он медленнее и регулярные выражения не работают %) эх.. нет в жизни сщастья... :)


--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
Ошибка перекодирования
    #35202202
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мой патч не правильный, я забыл про таблицу перекодировки в обратную сторону %)

Heikki Linnakangas написал правильный патч:
http://archives.postgresql.org/pgsql-bugs/2008-03/msg00200.php

теперь весь русский алфавит правильно конвертируется в ISO_8859_5 и из неё :)


--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Ошибка перекодирования
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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