Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Debian + postgresql-8.2 (8.2.4) + Tsearch2 (RU.UTF-8)
|
|||
|---|---|---|---|
|
#18+
Всем привет, Хотелось-бы проконсультироватся... Есть Debian, в нем есть PG (8.2.4), в комплекте есть Tsearch2, но что-то не получается: db=# SELECT to_tsvector('utf8_russian','проверка'); to_tsvector ------------- 'е':3 'п':1 (1 row) Хотя для английских букв - все OK. Чуствую что проблема где-то на поверхности, но где... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 01:47 |
|
||
|
Debian + postgresql-8.2 (8.2.4) + Tsearch2 (RU.UTF-8)
|
|||
|---|---|---|---|
|
#18+
1. У вас все в порядке с кодировкой клиентского соединения? Серверу ваше слово "проверка" должно приходить в utf8. 2. Вставьте сюда вывод команды SELECT ts_debug('проверка'), сделав перед этим SELECT set_curcfg('utf8_russian'). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 09:33 |
|
||
|
Debian + postgresql-8.2 (8.2.4) + Tsearch2 (RU.UTF-8)
|
|||
|---|---|---|---|
|
#18+
Это с использованием стандартной psql: db=# SELECT ts_debug('проверка'); ERROR: character 0xc295 of encoding "UTF8" has no equivalent in "KOI8" db=# \encoding utf8 db=# SELECT ts_debug('проверка'); ts_debug ------------------------------------------------------------- (utf8_russian,nlword,"Non-latin word",п,{ru_stem_utf8},'п') (utf8_russian,nlword,"Non-latin word",о,{ru_stem_utf8},"") (utf8_russian,nlword,"Non-latin word",е,{ru_stem_utf8},'е') (utf8_russian,nlword,"Non-latin word",к,{ru_stem_utf8},"") (4 rows) db=# В принципе точно такой-же эфект и в pgAdmin III... То есть если у клиента и сервера не совпадают кодировки то получается что-то типа: # SELECT ts_debug('проверка'); ERROR: character 0xc295 of encoding "UTF8" has no equivalent in "KOI8" Или все-таки я что-то не правильно делаю ? P.S. % locale LANG=ru_RU.UTF-8 LC_CTYPE="ru_RU.UTF-8" LC_NUMERIC=C LC_TIME=C LC_COLLATE="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES=C LC_PAPER="ru_RU.UTF-8" LC_NAME="ru_RU.UTF-8" LC_ADDRESS="ru_RU.UTF-8" LC_TELEPHONE="ru_RU.UTF-8" LC_MEASUREMENT="ru_RU.UTF-8" LC_IDENTIFICATION="ru_RU.UTF-8" LC_ALL= % cat test.utf проверка % od -tx1a test.utf 0000000 d0 bf d1 80 d0 be d0 b2 d0 b5 d1 80 d0 ba d0 b0 P ? Q nul P > P 2 P 5 Q nul P : P 0 0000020 0a nl 0000021 % _ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 11:06 |
|
||
|
Debian + postgresql-8.2 (8.2.4) + Tsearch2 (RU.UTF-8)
|
|||
|---|---|---|---|
|
#18+
Что-то ни чего не понимаю, или в дистрибутиве Debian tsearch2.sql кривой, или (что наиболее вероятно) у меня руки не очень прямые... Может-быть есть FAQ, по прикручиванию именно русского к tsearch2 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2007, 16:48 |
|
||
|
Debian + postgresql-8.2 (8.2.4) + Tsearch2 (RU.UTF-8)
|
|||
|---|---|---|---|
|
#18+
show server_encoding; show client_encoding; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 00:40 |
|
||
|
Debian + postgresql-8.2 (8.2.4) + Tsearch2 (RU.UTF-8)
|
|||
|---|---|---|---|
|
#18+
db=# show server_encoding; server_encoding ----------------- UTF8 (1 row) db=# show client_encoding; client_encoding ----------------- UTF8 (1 row) db=# SELECT ts_debug('тест'); ts_debug ------------------------------------------------------------- (utf8_russian,nlword,"Non-latin word",т,{ru_stem_utf8},'т') (utf8_russian,nlword,"Non-latin word",с,{ru_stem_utf8},"") (2 rows) db=# _ Хотя если сделать так - пересоздать базу данных с кодировкой KOI8, то все OK... db=# show client_encoding; client_encoding ----------------- UTF8 (1 row) db=# show server_encoding; server_encoding ----------------- KOI8 (1 row) db=# SELECT ts_debug('тест'); ts_debug ------------------------------------------------------------------- (utf8_russian,nlword,"Non-latin word",тест,{ru_stem_utf8},'тест') (1 row) db=# _ То есть скорее всего проблема именно в том что на той стороне (сервере) база данных создана в UTF-8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 01:06 |
|
||
|
Debian + postgresql-8.2 (8.2.4) + Tsearch2 (RU.UTF-8)
|
|||
|---|---|---|---|
|
#18+
Все решилось после того как создал (посредством inidb) еще один кластер с указанием кодировки UTF8... Насколько я понял проблема в том, что где-то внутри кластера прописываются локали которые потом используются... Как их изменить без пере-создания кластера - еще не понял, буду думать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 12:04 |
|
||
|
|

start [/forum/topic.php?fid=53&tid=2005341]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 401ms |

| 0 / 0 |
