Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / (tsearch2 + UTF-8) * FreeBSD 6.2 = ? / 10 сообщений из 10, страница 1 из 1
05.03.2008, 16:55
    #35173480
DAISER
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(tsearch2 + UTF-8) * FreeBSD 6.2 = ?
Всем здравствовать!

Имеем: FreeBSD 6.2, PostgreSQL 8.3.

Компилим, ставим. Пытаемся насладиться интегрированным tsearch2 -- узнаём у себе много нового.
Код: plaintext
/usr/local/pgsql/bin/initdb -D /public/pgdata/general/ -E UTF8 --locale=ru_RU.UTF-8

Далее:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
db=# show client_encoding;
 client_encoding
-----------------
 utf8
(1 row)
db=# show server_encoding;
 server_encoding
-----------------
 UTF8
(1 row)

db=# select * from menuitem where caption @@ 'Petya';
ERROR:  invalid byte sequence for encoding "UTF8": 0xd1
HINT:  This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".

Удивляемся, дампим базу. Поднимаем PostgreSQL 8.3 на Windows 2000 (кодировки при инициализации везде ставим UTF8). Ресторим базу.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
db=# show client_encoding;
 client_encoding
-----------------
 UTF8
(1 row)

db=# show server_encoding;
 server_encoding
-----------------
 UTF8
(1 row)

db=# select * from menuitem where caption @@ 'Petya';
 id | caption | link | menu_id | seq
----+---------+------+---------+-----
(0 rows)
(результат правильный, таких записей там нет)

В /public/pgdata/general/postgresql.conf:
Код: plaintext
client_encoding = 'UTF8'                # actually, defaults to database

В каком месте ДНК у меня ошибка?

Спасибо.
...
Рейтинг: 0 / 0
05.03.2008, 17:04
    #35173516
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(tsearch2 + UTF-8) * FreeBSD 6.2 = ?
1. локаль процессов postgres'а какая ? --locale=ru_RU.UTF-8 просто прописывает в конфиг настройки локали, сам серверный процесс при этом может быть запущен с неправильной локалью.
2. что показывает просто select * from menuitem; ?
3. как заливался дамп ? в какой он кодировке и формате ?

--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
05.03.2008, 17:12
    #35173546
DAISER
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(tsearch2 + UTF-8) * FreeBSD 6.2 = ?
1. show all;
Код: plaintext
1.
2.
3.
4.
5.
 lc_collate                      | ru_RU.UTF-8                            | Shows the collation order locale.
 lc_ctype                        | ru_RU.UTF-8                            | Shows the character classification and case conversion locale.
 lc_messages                     | ru_RU.UTF-8                            | Sets the language in which messages are displayed.
 lc_monetary                     | ru_RU.UTF-8                            | Sets the locale for formatting monetary amounts.
 lc_numeric                      | ru_RU.UTF-8                            | Sets the locale for formatting numbers.
 lc_time                         | ru_RU.UTF-8                            | Sets the locale for formatting date and time values.
если я правильно понял вопрос. Подскажите где посмотреть.
2. select * from menuitem показывает записи которые есть в таблице:
Код: plaintext
1.
2.
3.
4.
5.
 id |         caption         |                    link                    | menu_id | seq
----+-------------------------+--------------------------------------------+---------+-----
  1 | п²п╟ пЁп╩п╟п╡пҐя┐я▌              | page:test                                  |       1 |   1
  3 | п÷я─п╬пЁя─п╟п╪п╪пҐп╬п╣ п╬п╠п╣я│п©п╣я┤п╣пҐп╦п╣ | menu:2                                     |       1 |   3
  ....
3. Дамп заливался через pg_restore. Из предыдущей инсталяции PostgreSQL 8.1.11 в кодировке UTF8.
...
Рейтинг: 0 / 0
05.03.2008, 18:58
    #35173818
iz
iz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(tsearch2 + UTF-8) * FreeBSD 6.2 = ?
Во FreeBSD давно существуют большие проблемы с UTF-8. Не уверен, что в данном случае это поможет, но ознакомьтесь с недавним опытом борьбы Лехи Тутубалина с UTF-8 во FreeBSD:

http://blog.lexa.ru/2008/02/19/bol_no_udarilsja_ob_utf8.html
http://blog.lexa.ru/2008/02/22/sortirovka_utf8_v_postgresql_pod_freebsd.html
http://blog.lexa.ru/2008/02/27/freebsd_ru_ruutf8_lc_collate.html
http://blog.lexa.ru/2008/03/03/freebsd_utf8_russian_collate_vtoraja_popitka.html
...
Рейтинг: 0 / 0
05.03.2008, 22:42
    #35174091
DAISER
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(tsearch2 + UTF-8) * FreeBSD 6.2 = ?
izВо FreeBSD давно существуют большие проблемы с UTF-8. Не уверен, что в данном случае это поможет, но ознакомьтесь с недавним опытом борьбы Лехи Тутубалина с UTF-8 во FreeBSD:

http://blog.lexa.ru/2008/02/19/bol_no_udarilsja_ob_utf8.html
http://blog.lexa.ru/2008/02/22/sortirovka_utf8_v_postgresql_pod_freebsd.html
http://blog.lexa.ru/2008/02/27/freebsd_ru_ruutf8_lc_collate.html
http://blog.lexa.ru/2008/03/03/freebsd_utf8_russian_collate_vtoraja_popitka.html
О-па... Вот так новости. Спасибо! И выход? Ставить Линуху?
...
Рейтинг: 0 / 0
05.03.2008, 23:11
    #35174128
MBG
MBG
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(tsearch2 + UTF-8) * FreeBSD 6.2 = ?
DAISER izВо FreeBSD давно существуют большие проблемы с UTF-8. Не уверен, что в данном случае это поможет, но ознакомьтесь с недавним опытом борьбы Лехи Тутубалина с UTF-8 во FreeBSD:

http://blog.lexa.ru/2008/02/19/bol_no_udarilsja_ob_utf8.html
http://blog.lexa.ru/2008/02/22/sortirovka_utf8_v_postgresql_pod_freebsd.html
http://blog.lexa.ru/2008/02/27/freebsd_ru_ruutf8_lc_collate.html
http://blog.lexa.ru/2008/03/03/freebsd_utf8_russian_collate_vtoraja_popitka.html
О-па... Вот так новости. Спасибо! И выход? Ставить Линуху?

Да. Поскольку линукс система более "широкого профиля" и поддерживает не только почтовик/файрволл.
...
Рейтинг: 0 / 0
06.03.2008, 00:31
    #35174210
iz
iz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(tsearch2 + UTF-8) * FreeBSD 6.2 = ?
DAISER izВо FreeBSD давно существуют большие проблемы с UTF-8. Не уверен, что в данном случае это поможет, но ознакомьтесь с недавним опытом борьбы Лехи Тутубалина с UTF-8 во FreeBSD:

http://blog.lexa.ru/2008/02/19/bol_no_udarilsja_ob_utf8.html
http://blog.lexa.ru/2008/02/22/sortirovka_utf8_v_postgresql_pod_freebsd.html
http://blog.lexa.ru/2008/02/27/freebsd_ru_ruutf8_lc_collate.html
http://blog.lexa.ru/2008/03/03/freebsd_utf8_russian_collate_vtoraja_popitka.html
О-па... Вот так новости. Спасибо! И выход? Ставить Линуху?

Вообще-то, насколько я заметил беглым взглядом, проблема у Лехи касается сравнения строк (LC_COLLATE), то есть к вашей может и не иметь отношения. Далее, вроде Тутубалин сочинил какой-то патч, не хотите его попробовать?

Ну а в целом -- да, PostgreSQL тут не причем, это заморочки FreeBSD. На Linux с этим абсолютно гладко и приятно. Мигрировать или нет на него -- решать вам, я бы все-таки поковырялся в существующих решениях для фри (погуглить еще можно, об этом пишут), ведь раз вы ее используете, должны быть для этого какие-то веские основания, зачем сразу отказываться.
...
Рейтинг: 0 / 0
06.03.2008, 00:39
    #35174223
DAISER
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(tsearch2 + UTF-8) * FreeBSD 6.2 = ?
izВообще-то, насколько я заметил беглым взглядом, проблема у Лехи касается сравнения строк (LC_COLLATE), то есть к вашей может и не иметь отношения. Далее, вроде Тутубалин сочинил какой-то патч, не хотите его попробовать?
Да, я тоже думаю, что locale не имеет к этому отношения, потому что она больше на сортировки, сравнения и форматирование влияет. Но вопрос остаётся открытым. Патч посмотрел, как я понял, там опять же на сортировку акцент. Не мой случай. В Гугле тоже ничего существенного не нарыл. Сейчас попробую с О. Бартуновым связаться -- хочется малой кровью обойтись :-).

FreeBSD выбрана потому, что исторически уже несколько лет с ней работаю и такие грабли впервые. Пробовал как-то Debian Linux 3.1, субъективно FreeBSD шустрее.
...
Рейтинг: 0 / 0
06.03.2008, 12:51
    #35175298
iz
iz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(tsearch2 + UTF-8) * FreeBSD 6.2 = ?
связываться по этому вопросу лучше не с Бартуновым, а Федей Сигаевым (sigaev.ru)
...
Рейтинг: 0 / 0
06.03.2008, 14:06
    #35175706
DAISER
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(tsearch2 + UTF-8) * FreeBSD 6.2 = ?
izсвязываться по этому вопросу лучше не с Бартуновым, а Федей Сигаевым (sigaev.ru)
В прицнипе смирился и уже Debian 4.0 качаю :-)
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / (tsearch2 + UTF-8) * FreeBSD 6.2 = ? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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