Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MS SQL и опять кодировка, в какой кодировке заносить данные 
V
    Опции темы
morpheyushka
Дата 22.1.2010, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: нет
Всего: 8



Работаю с базой MS SQL через связку DBD::Sybase + FreeTDS. Все отлично получается, вот только с кириллицей сплошные проблемы. За несколько дней перепробовал уже много чего.
Сразу скажу, что с Perl пока еще на Вы и шепотом.
Вот скрипт добавления записи
Код

my $cyrillic = 'Привет';
my $codir = 'CP1251';#тут пробовал UTF8, KOI8, WIN, ISO
my $f = Convert::Cyrillic::cstocs(Lingua::DetectCharset::Detect($cyrillic), $codir, $cyrillic);

my $dbh = DBI->connect('DBI:Sybase:server=oxygen', $login, $pass) || die DBI->errstr;
$dbh->do("use WebTest");
my $query = "insert into mail (Subject, FromAddress) values ('$f', '$codir')";
my $sth = $dbh->prepare ($query) or die "prepare failed\n";
$sth->execute();

Вот что попадает в БД
Цитата

??N??????µN?    UTF8
?OE?AO         KOI8
?aOOOa         ISO
I?eaao         WIN
?OE?AO         CP1251
?OE?AO            (без кодирования)


Сегодня немного нарыл в сторону модуля Encode, но пока еще не разбирался.
Кстати, а как можно посмотреть кодировку БД?


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
morpheyushka
Дата 22.1.2010, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: нет
Всего: 8



Нашел вот такое у сервера:
Цитата

Server collation: Cyrillic_General_CI_AS

интересно...єто как то относится к кодировке?


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
morpheyushka
Дата 25.1.2010, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: нет
Всего: 8



Может хоть кто нибудь покажет куда копать?


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
morpheyushka
Дата 27.1.2010, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: нет
Всего: 8



Вопрос так и не решил...вот содержимое файла 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


то есть perl у меня на ЛOI80R разговаривает?


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
arto
Дата 27.1.2010, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



PM MAIL ICQ   Вверх
morpheyushka
Дата 27.1.2010, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: нет
Всего: 8



Цитата(arto @  27.1.2010,  11:38 Найти цитируемый пост)
http://www.freetds.org/userguide/unicodeutf.htm

не сильно понял статью


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
morpheyushka
Дата 27.1.2010, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: нет
Всего: 8



а если пытаться выполнить запрос select, то в ыдает сообщение:
Цитата

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 ('?')



--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
morpheyushka
Дата 2.2.2010, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: нет
Всего: 8



Все...победа. smile 
Перечитал еще раз мануалы на 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);


у меня переменная $SYBASE была не установлена почему то

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


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0550 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.