Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Изучаю 8.3 beta3... Вопросы про локаль. / 3 сообщений из 3, страница 1 из 1
22.11.2007, 20:55
    #34959722
msk
msk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю 8.3 beta3... Вопросы про локаль.
После установки попытался сделать initdb с опцией -E WIN.
В результате был послан нах, т.к. системная локаль - UTF8.
Танцы с бубном меня привели к решению в виде LANG=C initdb -E WIN
Всё прошло успешно, по psql -l базы в cp1251.
Всё бы хорошо, но мне потребовалось совмещать базы cp1251 и UTF8.
Пытаюсь создать базу
createdb test -E UTF8
в ответ получаю
createdb: database creation failed: ERROR: encoding UTF8 does not match server's locale ru_RU.cp1251
DETAIL: The server's LC_CTYPE setting requires encoding WIN1251.
Проверяю, вся локаль - en_US.UTF-8
Порылся в доках , нашел:
Important: On most modern operating systems, PostgreSQL can determine which character set is implied by an LC_CTYPE setting, and it will enforce that only the correct database encoding is used. On older systems it is your responsibility to ensure that you use the encoding expected by the locale you have selected. A mistake in this area is likely to lead to strange misbehavior of locale-dependent operations such as sorting.

PostgreSQL will allow superusers to create databases with SQL_ASCII encoding even when LC_CTYPE is not C or POSIX. As noted above, SQL_ASCII does not enforce that the data stored in the database has any particular encoding, and so this choice poses risks of locale-dependent misbehavior. Using this combination of settings is deprecated and may someday be forbidden altogether.
Т.е. это что получается - использовать БД с разными кодировками в 8.3 не получится?
Или можно, но как?
P.S.
На продакшене пока использую 8.1, может с 8.2 есть такая же заморочка - не знаю...
...
Рейтинг: 0 / 0
22.11.2007, 23:02
    #34959856
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю 8.3 beta3... Вопросы про локаль.
mskТ.е. это что получается - использовать БД с разными кодировками в 8.3 не получится?это же никогда нельзя было. сортировка на сервере зависит от текущей локали серверного процесса, а она соответственно общая для всех баз. можно запустить отдельный сервер на другом порту с другой локалью и кодировкой и другим каталогом баз, только зачем ? лучше имхо сделать кодировку сервера utf-8 а на клиенте - выставлять нужную клиенту кодировку через set names 'windows-1251' например или set names 'koi8-r'; если нужно что бы от клиента/на клиента шла другая, не серверная кодировка.

ps: фича - в 8.2 с кодировкой utf-8 не работают регулярные выражения, а в 8.1 с кодировкой utf-8 будут проблемы как с регулярными выражениями так и с ilike. upper/lower работают хорошо и там и там.


--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
07.12.2007, 09:03
    #34993116
GreyCardinal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю 8.3 beta3... Вопросы про локаль.
в 8.3 beta4 локаль исправлена с виду
у меня вообще UTF8 в 8.3 beta3 не ставилась как по дефолту на сервер
теперь прокатило
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Изучаю 8.3 beta3... Вопросы про локаль. / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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