Войти

Показать полную графическую версию : Postgresql 8.2 и tsearch2


Vich
06-03-2007, 00:35
Проблема возникла вес0ьма специфичная. Кодировка кластера и БД - utf8. В эту базу установлено расширение tsearch2.
Запрос select to_tsvector('default', 'tik-tak'); возвращает 'tak':3 'tik':2 'tik-tak':1. А вот select to_tsvector('default', 'тик-так'); возвращает ошибку.
ERROR: invalid byte sequence for encoding "UTF8": 0xf2e8ea2d
Словари tsearch конвертированы в uft-8.
Кто сталкивался, кто чем может помочь?

ruslandh
06-03-2007, 06:46
Я с посгрескл не работал, могу только предположить, что 'тик-так' дожен быть в UTF8, а у вас какая-нибудь 8-битовая кодировка, или где-то неправильно работает перекодировщик русские8бит->UTF8

mar
15-03-2007, 19:37
ruslandh совершенно прав.
Посмотрите, что по этому поводу пишут разные люди, наступающие на подобные грабли: (google - спец запрос) (http://www.google.ru/search?q=ERROR%3A+invalid+byte+sequence+for+encoding+UTF8)

Vich
30-03-2007, 17:30
Грабли там всетаки были... кластер постгреса нужно инитить в utf8 (initdb --locale=utf8).
Но собственно ошибка была вызвана неправильной кодировкой в терминале, откуда пускал запрос кодировка была другая, хотя локаль правильная.
Спасибо




© OSzone.net 2001-2012