powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Postgres encoding
10 сообщений из 10, страница 1 из 1
Postgres encoding
    #35133278
izver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здраствуйте.
Есть вопрос. Надо создать базу данных.
Вопрос заключается в выборе инкодинга. Дело в том что база будет находится на linux suse10.1, а пользовательская прогррамма находиться на винде и linux suse10.1. Содержание данных будет на русском и на английском.
...
Рейтинг: 0 / 0
Postgres encoding
    #35133300
izver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Поля на английском.
...
Рейтинг: 0 / 0
Postgres encoding
    #35133362
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бери UTF8, не прогадаешь.
...
Рейтинг: 0 / 0
Postgres encoding
    #35133417
Фотография Zashibis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваша программа будет общаться с PostgreSQL через ODBC?
В ODBC все строки автоматически преобразуются из виндовых кодировок в UTF-8 и обратно
...
Рейтинг: 0 / 0
Postgres encoding
    #35134012
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в кодировке utf-8 не работают регулярные выражения да и строковые операции по идеи медленнее (многобайтные символы...)

в кодировке koi8-r отсутствует символ № (номер), а виндовые клиенты очень любят его вводить поскольку в их локальной кодировке (cp1251) он присутствует

я бы наверное выбрал cp1251 %) если Вам нужен полнотекстовой поиск то стоит почитать его описание, возможно он требует какую-то определённую кодировку русского, хотя незнаю...

--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
Postgres encoding
    #35134036
Фотография Zashibis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Регулярные выражения вполне даже работают в utf8

Код: plaintext
1.
2.
3.
4.
postgres=# select 'аааэ' ~ '^а';
 ?column?
----------
 t

Кодировка utf8, символы меж слешей - русские
...
Рейтинг: 0 / 0
Postgres encoding
    #35134038
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ёшв кодировке utf-8 не работают регулярные выражения Совсем-совсем не работают или в каких-то особенных случаях?
...
Рейтинг: 0 / 0
Postgres encoding
    #35134759
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
со всеми символами которые больше одного байта в длину, то есть со всеми не латинскими.
Zashibis, это очень простой пример :) он работает потому что русская буква 'a' (d0 b0 в utf-8) просто воспринимается как две буквы, одна с кодом 0xD0 и вторая с 0xB0, попробуй например регистронезависимое сравнение:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
seb=> select 'ABc' ~* '^abc';
 ?column?
----------
 t
( 1  запись)

seb=> select 'АБв' ~* '^абв';
 ?column?
----------
 f
( 1  запись)

--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
Postgres encoding
    #35134833
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ёшсо всеми символами которые больше одного байта в длину, то есть со всеми не латинскими.
Zashibis, это очень простой пример :) он работает потому что русская буква 'a' (d0 b0 в utf-8) просто воспринимается как две буквы, одна с кодом 0xD0 и вторая с 0xB0, попробуй например регистронезависимое сравнение:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
seb=> select 'ABc' ~* '^abc';
 ?column?
----------
 t
( 1  запись)

seb=> select 'АБв' ~* '^абв';
 ?column?
----------
 f
( 1  запись)

--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери

А может быть это проблема не регулярных выражений, а локали
http://www.sql.ru/forum/actualsearch.aspx?search=upper&sin=0&a=&ma=0&bid=7&dt=-1&s=1&so=1

Проверьте, у вас upper и lower работают? (для русских букв)
...
Рейтинг: 0 / 0
Postgres encoding
    #35135245
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо за ссылку, эх если бы это так просто решалось... то ПЖ был бы идеален %) но у меня к сожалению всё впорядке с локалью и кодировкой :)
Код: plaintext
1.
2.
3.
4.
5.
seb=> select upper('русский') || lower('ЯЗЫК');
  ?column?
-------------
 РУССКИЙязык
( 1  запись)

к сожалению, регулярные выражения для мультибайтных кодировок не работали никогда. это известный факт %)
http://archives.postgresql.org/pgsql-bugs/2007-08/msg00079.php

под "не работали" я подразумеваю что не работает по крайней мере регистронезависимое сравнение, сравнение классов символов (\w [[:alpha:]])

ps: лично мне эта проблема с regexp совершенно не мешает, а вот с символом номера и koi8-r я напоролся конкретно... %) злобные ГОСТ-овцы (или кто там до этого хаоса кодировок додумался...) подложили грабли... этож надо было додуматься, сделать две кодировки своего языка, в одной из которых есть символ номера, а в другой - нету !


--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Postgres encoding
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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