|
PostGres 7.3 и CP1251
|
|||
---|---|---|---|
#18+
Проблема: На OpenBSD создал базу строчкой вида initdb -E win --lc-collate=ru_RU.CP1251 --lc-ctype=ru_RU.CP1251 -D /var/postgresql/data Не работает функция upper(), хотя с сортировкой все в порядке. Какие параметры нужно указать? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2003, 12:41 |
|
PostGres 7.3 и CP1251
|
|||
---|---|---|---|
#18+
У меня такая же фигня. Где-то прочитал что при подключении нужно устанавливать переменную LANG, но не проверял, врать не буду. Хотя мож чё-то с локалью, у меня и в ПХП upper() и lower() неправильно русские буквы меняют. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2003, 12:48 |
|
PostGres 7.3 и CP1251
|
|||
---|---|---|---|
#18+
Результат Функции upper() (да и других стринговых функций) помимо всего прочего зависит от параметра -E утилиты createdb. ------------------- Непонимаю зачем использовать локаль базы CP1251 на сервере где основная локаль заведомо KOI8-R??? Например. Делаем inidb без явного указания --lc-collate и --lc-ctype= - обычно локаль к этому времени настроена как должно. initdb прописывает в postgresql.conf такие слова: # # Locale settings # # (initialized by initdb -- may be changed) LC_MESSAGES = 'ru_RU.KOI8-R' LC_MONETARY = 'ru_RU.KOI8-R' LC_NUMERIC = 'ru_RU.KOI8-R' LC_TIME = 'ru_RU.KOI8-R' Замечательно! Теперь cоздаем базу. createdb -E KOI8 mdb2 И все. Данные хранятся в Koi8 - стринговые функции работают "на ура" - клиентские приложения просто говорят в какой кодировке работают ( мои клиенты на Delphi начинают трудовую смену set client_encoding = WIN 8-) ). И все счастливы! ;o) А я по приколу сделала такой финт - createdb -E WIN mdb3 Результаты меня нисколько не удивили : фунцкия upper() стала возвращать результат свойственный функции lower(). И наоборот ! ;) Так что вывод один - Храните Ваши данные в единой кодировке (если параметр -E не указан - поумолчанию SQL_ASCII) ----------------------------------------- OS - FreeBSD 4.3 STABLE. Postgers 7.3 /7.3.2 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2003, 14:26 |
|
PostGres 7.3 и CP1251
|
|||
---|---|---|---|
#18+
Результат Функции upper() (да и других стринговых функций) помимо всего прочего зависит от параметра -E утилиты createdb. ------------------- Непонимаю зачем использовать локаль базы CP1251 на сервере где основная локаль заведомо KOI8-R??? Например. Делаем inidb без явного указания --lc-collate и --lc-ctype= - обычно локаль к этому времени настроена как должно. initdb прописывает в postgresql.conf такие слова: # # Locale settings # # (initialized by initdb -- may be changed) LC_MESSAGES = 'ru_RU.KOI8-R' LC_MONETARY = 'ru_RU.KOI8-R' LC_NUMERIC = 'ru_RU.KOI8-R' LC_TIME = 'ru_RU.KOI8-R' Замечательно! Теперь cоздаем базу. createdb -E KOI8 mdb2 И все. Данные хранятся в Koi8 - стринговые функции работают "на ура" - клиентские приложения просто говорят в какой кодировке работают ( мои клиенты на Delphi начинают трудовую смену set client_encoding = WIN 8-) ). И все счастливы! ;o) А я по приколу сделала такой финт - createdb -E WIN mdb3 Результаты меня нисколько не удивили : фунцкия upper() стала возвращать результат свойственный функции lower(). И наоборот ! ;) Так что вывод один - Храните Ваши данные в единой кодировке (если параметр -E не указан - поумолчанию SQL_ASCII) ----------------------------------------- OS - FreeBSD 4.3 STABLE. Postgers 7.3 /7.3.2 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2003, 14:27 |
|
PostGres 7.3 и CP1251
|
|||
---|---|---|---|
#18+
Дело в том, что у меня уже есть стопятьсот баз данных, которые все в Win1251. И конвертить как-то... не очень хочется :) И мне казалось, что createdb берет параметр --encoding(если не указан) от initdb, где я его явно указал. Такие вот дела. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2003, 14:36 |
|
PostGres 7.3 и CP1251
|
|||
---|---|---|---|
#18+
Блин ну и лагает этот форум..... каашмар (с инетом все ок - канал дай бог каждому 8)) да и пинг на россию пристойный ) А вот ASP - само по себе фигня полная..... а возможности этого этого форума просто убогие... - например я бы с удовольствием похерил бы ошибочный пост, или отредактил его ан нет. Сорри за оффтоп просто достало малехо. Впрочем мож я неправ - и просто сервак задыхается под наплывом коннектов? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2003, 14:38 |
|
PostGres 7.3 и CP1251
|
|||
---|---|---|---|
#18+
Хотя все равно с возможностями у него конечно ен все в порядке :( Вот YaBB рулит. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2003, 14:42 |
|
PostGres 7.3 и CP1251
|
|||
---|---|---|---|
#18+
Мдас печально - хотя наваять скрипт конвертирования можно довольно просто. Например create -E KOI8 $2 pg_dump -c $1 | win2koi8 | psql $2 dropdb $1 Ну и получив список баз запихнул это дело в цикл. Усе. Пробелы возникнут разве что при наличии BLOB полей (я их маловато юзал так что не подскажу хотя дампить их есстественно можно 8) ). А что касаемо установок createdb.... Похоже что если явно не указывать createdb _копирует_ установку Encoding из template1. У меня Encoding template1 SQL_ASCII. Соотв делая createdb mdb1 получаем базу mdb1 с кодировочкой SQL_ASCII. IMHO все вполне логично. Кстати на эти грабли наступают многие из-за невнимательного RTFM. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2003, 15:06 |
|
PostGres 7.3 и CP1251
|
|||
---|---|---|---|
#18+
К счастью это самый FM я много раз R вдоль и поперек. Однако не помогает. Может, локаль крива? Не в курсе, где можно локаль ВИН1251 для Опена выкачать? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2003, 15:32 |
|
PostGres 7.3 и CP1251
|
|||
---|---|---|---|
#18+
К сожалению никогда не работал с OpenBSD хотя слышал много лестных отзывов Но если бы даже пришлось работать основной локалью была бы конечно KOI8. А что утебя написал Initdb в конце postgresql.conf про локаль? Может он не увидел что у тебя выставлено в шеле? Да и какой же получилась Encode в у template1 -запости вывод комманды psql -c "\l" template1 И все равно удивительно, зачем может понадобиться устанавливать основной локалью cp1251... там где общепринята KOI8? 8_) IMHO это также обосновано как под WIN пытаться все переделать под KOI8 8)) Проще "научить" клиентские проги указывать локаль, в которой они хотят получать данные. Кстати для пользователяв PG вроде можно прописать набор установок переменных типа SET clien_encoding=WIN; SET enable_seqscan=true ; SET log_duration=true; Правда пока что такой необходимости не было как это работает я не вкурсе. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2003, 16:05 |
|
PostGres 7.3 и CP1251
|
|||
---|---|---|---|
#18+
По уточненным данным, OpenBSD не поддерживает локали :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2003, 01:44 |
|
PostGres 7.3 и CP1251
|
|||
---|---|---|---|
#18+
ну подписку найти легко, например тут http://developer.postgresql.org/mailsub.php может кому и сгодится. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2003, 09:01 |
|
PostGres 7.3 и CP1251
|
|||
---|---|---|---|
#18+
У меня как раз developer.postgres и лежит :) На итальянском зеркале одиноко болтается объява о временных технических сложностях... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2003, 18:13 |
|
PostGres 7.3 и CP1251
|
|||
---|---|---|---|
#18+
"И все равно удивительно, зачем может понадобиться устанавливать основной локалью cp1251... там где общепринята KOI8? 8_)" Для того чтобы иметь в базе 1251-символы, которых нет в koi8, как например туда-обратно кавычки, длинное тире, копирайт, евро,.. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2003, 11:02 |
|
PostGres 7.3 и CP1251
|
|||
---|---|---|---|
#18+
А что мешает использовать UTF? Не на OpenBSD, конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2003, 11:08 |
|
PostGres 7.3 и CP1251
|
|||
---|---|---|---|
#18+
2 Shweik: >Делаем inidb без явного указания --lc-collate и --lc-ctype= >- обычно локаль к этому времени настроена как должно. >initdb прописывает в postgresql.conf такие слова: ># ># Locale settings ># ># (initialized by initdb -- may be changed) >LC_MESSAGES = 'ru_RU.KOI8-R' >LC_MONETARY = 'ru_RU.KOI8-R' >LC_NUMERIC = 'ru_RU.KOI8-R' >LC_TIME = 'ru_RU.KOI8-R' Ничего подобного. У меня, например, написало: LC_MESSAGES = 'С' LC_MONETARY = 'С' LC_NUMERIC = 'С' LC_TIME = 'С' Сортировка правильная, а upper и lower вообще не работают :(( При попытке прописать koi8 улетела сортировка :(( ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2003, 11:11 |
|
PostGres 7.3 и CP1251
|
|||
---|---|---|---|
#18+
mik_s : > Сортировка правильная, а upper и lower вообще не работают :(( Сортировка "правильная", потому что в cp1251 русские буквы вообще говоря по алфавиту расположены. А upper и lower работать и не будут, если ты локаль не настроил. Читай, студент: http://faq.phpclub.net/index.php3?theme=1&level=4&question_id_select=91&chapitre_id_select=27&document_id_select=2 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2003, 12:13 |
|
PostGres 7.3 и CP1251
|
|||
---|---|---|---|
#18+
createdb -E UNICODE dbname upper русские буквы корежит, lower вообще ничего не делает... Есть ли какие-то соображения, как это побороть? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2003, 21:37 |
|
|
start [/forum/topic.php?fid=53&fpage=365&tid=2008158]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
72ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 224ms |
total: | 391ms |
0 / 0 |