metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-12-29 03:26 pm

Postgresql

А почему в сабже, установленном на винде есть Russian_Russia.1251 в качестве доступной collation, а на убунте - только ru_RU.UTF8 - и то, если установить соответствующий language pack. Это ж под каждый вариант установки скрипты создания базы править надо.

Мне почему-то казалось, что серверу БД полагаться на черт знает что, установленное косорукими клиентскими эникеями в качестве локали ОС, нежелательно и лучше иметь свою независимую коллекцию локалей и collation.

[identity profile] pavelusa.livejournal.com 2013-12-30 12:29 am (UTC)(link)
И Windows не похоронил - всё ещё есть ANSI в простых текстовых редакторах типа Блокнота и сама ANSI - системная кодировка (system code page), CP_ACP - однобайтовая:
- ANSI = 1251 если системная локаль (то же самое, что выставляется как язык для не-Unicode программ) "Русский, Россия"
- ANSI = 1252 на немецких, английских, американских, французских Windows - системная локаль - "Западная Европа, windows-1252"
- 1250 - "Центральная Европа"
- 1257 - "Балтика"
- ...

ПОэтому все юникодовые программные среды должны помнить о сериализации - чтение посторонних файлов или создание файлов - забудешь в Java явно указать, что хочешь в UTF-8 вывести текст, и получишь только ???? если в Java в юникоде - немецкие или японские буковки, а ANSI =1251 -
перекодирование UTF-16--->1251 их 'убьёт'. И наоборот

:)
Edited 2013-12-30 00:31 (UTC)