Автор Тема: Помогите разобраться с кодировками  (Прочитано 7610 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн morpheyushka

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Есть rh, на нем perl (5.8.8). Есть Win2000 Server. На нем MS SQL Server 2000. Подключаюсь к нему по связке FreeTDS + Sybase. Все отлично, за исключением кириллицы. Пытаюсь занести "Привет", а заносится что попало (кракозябрики). Помогите разобраться с кодировками - какая на серваке, какая в perl? Какими средствами можно узнать?

Вот что я нашел на SQL сервере:
Collaption name: Cyrillic_General_CI_AS

Вот содержимое locales.conf:
[default]
   date format = %b %d %Y %I:%M%p
   char set = KOI8-R

[en_US]
   date format = %b %d %Y %I:%M%p
   language = us_english
   char set = KOI8-R

[es_ES]
   date format = %b %d %Y %I:%M%p
   language = spanish
   char set = iso_1
[ru_RU]
   date format = %b %d %Y %I:%M%p
   language = russian
   char set = KOI8-R

Спасибо за внимание,
Михаил.

Оффлайн morpheyushka

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите разобраться с кодировками
« Ответ #1 : 27 Января 2010, 15:01:04 »
А вот если пытаюсь прочитать русский текст из базы, то ловлю сообщение:
Цитировать
DBD::Sybase::st fetchrow_array failed: OpenClient message: LAYER = (0) ORIGIN = (0) SEVERITY = (9) NUMBER = (99)
Server oxygen, database WebTest
Message String: Some character(s) could not be converted into client\'s character set.  Unconverted bytes were changed to question marks (\'?\')

Ну и выводит естественно в консоли знаками вопроса.

в freetds.conf пробовал добавить строчку:
client charset = KOI8-R
не помогло...уже 4 день бьюсь...уперся в эту ошибку и все

Оффлайн morpheyushka

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите разобраться с кодировками
« Ответ #2 : 28 Января 2010, 17:32:59 »
Пролил свет еще на одно событие...по скольку у меня в БД указано "Collaption name: Cyrillic_General_CI_AS", значит кодовая страница - 1251, то есть ср1251.

Но грабли еще не исправлены...по прежнему ничего не работает с кирилицей

Оффлайн morpheyushka

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите разобраться с кодировками
« Ответ #3 : 02 Февраля 2010, 17:36:13 »
Все...победа.
Перечитал еще раз мануалы на CPAN по DBD::Sybase и с помощью волшебных команд научил красную шапку и MS SQL Server 2000 общаться на одном языке:
BEGIN {
       
$ENV{SYBASE} = \'/usr/local\';
   }
...
my $dbh = DBI->connect(\'dbi:Sybase:server=oxygen;charset=koi8-r\', $login, $pass);

Вопрос закрыт

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28