powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PostGres 7.3 и CP1251
19 сообщений из 19, страница 1 из 1
PostGres 7.3 и CP1251
    #32170542
Eridan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема:
На OpenBSD создал базу строчкой вида

initdb -E win --lc-collate=ru_RU.CP1251 --lc-ctype=ru_RU.CP1251 -D /var/postgresql/data

Не работает функция upper(), хотя с сортировкой все в порядке.

Какие параметры нужно указать?
...
Рейтинг: 0 / 0
PostGres 7.3 и CP1251
    #32170552
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня такая же фигня. Где-то прочитал что при подключении нужно устанавливать переменную LANG, но не проверял, врать не буду. Хотя мож чё-то с локалью, у меня и в ПХП upper() и lower() неправильно русские буквы меняют.
...
Рейтинг: 0 / 0
PostGres 7.3 и CP1251
    #32170748
Shweik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Результат Функции 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
...
Рейтинг: 0 / 0
PostGres 7.3 и CP1251
    #32170752
Shweik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Результат Функции 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
...
Рейтинг: 0 / 0
PostGres 7.3 и CP1251
    #32170782
Eridan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что у меня уже есть стопятьсот баз данных, которые все в Win1251. И конвертить как-то... не очень хочется :)

И мне казалось, что createdb берет параметр --encoding(если не указан) от initdb, где я его явно указал.

Такие вот дела.
...
Рейтинг: 0 / 0
PostGres 7.3 и CP1251
    #32170783
Shweik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин ну и лагает этот форум..... каашмар (с инетом все ок - канал дай бог каждому 8)) да и пинг на россию пристойный )
А вот ASP - само по себе фигня полная.....
а возможности этого этого форума просто убогие... - например я бы с удовольствием похерил бы ошибочный пост, или отредактил его ан нет.
Сорри за оффтоп просто достало малехо.
Впрочем мож я неправ - и просто сервак задыхается под наплывом коннектов?
...
Рейтинг: 0 / 0
PostGres 7.3 и CP1251
    #32170796
Eridan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотя все равно с возможностями у него конечно ен все в порядке :( Вот YaBB рулит.
...
Рейтинг: 0 / 0
PostGres 7.3 и CP1251
    #32170853
Shweik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мдас печально - хотя наваять скрипт конвертирования можно довольно просто.
Например
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.
...
Рейтинг: 0 / 0
PostGres 7.3 и CP1251
    #32170914
Eridan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К счастью это самый FM я много раз R вдоль и поперек. Однако не помогает. Может, локаль крива? Не в курсе, где можно локаль ВИН1251 для Опена выкачать?
...
Рейтинг: 0 / 0
PostGres 7.3 и CP1251
    #32170991
Shweik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению никогда не работал с 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;
Правда пока что такой необходимости не было как это работает я не вкурсе.
...
Рейтинг: 0 / 0
PostGres 7.3 и CP1251
    #32175741
Eridan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По уточненным данным, OpenBSD не поддерживает локали :)
...
Рейтинг: 0 / 0
PostGres 7.3 и CP1251
    #32178038
Фотография Niemi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну подписку найти легко, например тут
http://developer.postgresql.org/mailsub.php
может кому и сгодится.
...
Рейтинг: 0 / 0
PostGres 7.3 и CP1251
    #32181645
Eridan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня как раз developer.postgres и лежит :) На итальянском зеркале одиноко болтается объява о временных технических сложностях...
...
Рейтинг: 0 / 0
PostGres 7.3 и CP1251
    #32183924
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"И все равно удивительно, зачем может понадобиться устанавливать основной локалью cp1251... там где общепринята KOI8? 8_)"

Для того чтобы иметь в базе 1251-символы, которых нет в koi8, как например туда-обратно кавычки, длинное тире, копирайт, евро,..
...
Рейтинг: 0 / 0
PostGres 7.3 и CP1251
    #32183935
Stellar.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что мешает использовать UTF?

Не на OpenBSD, конечно.
...
Рейтинг: 0 / 0
PostGres 7.3 и CP1251
    #32185097
mik_s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 улетела сортировка :((
...
Рейтинг: 0 / 0
PostGres 7.3 и CP1251
    #32185220
Sad Spirit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
PostGres 7.3 и CP1251
    #32201382
Max Mokry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
createdb -E UNICODE dbname
upper русские буквы корежит, lower вообще ничего не делает...

Есть ли какие-то соображения, как это побороть?
...
Рейтинг: 0 / 0
PostGres 7.3 и CP1251
    #32216224
Eridan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сортировка в win1251 правильная, потому что все по алфавиту... кроме буквы "ё" :) Она будет первая.

2 Max Mokry: чем смотришь? Если через psql, убедись, что client-encoding выставлен в UNICODE
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PostGres 7.3 и CP1251
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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