Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Темы - ravshaniy

Страницы: [1]
1
Если Вы сталкивались с этой проблемой, подскажите как вы ее решили. я пытаюсь ее решить с помощью модуля
Encode::InCharset

И, честно говоря, пока он ругается \\p{In}

Вот мой код


use strict;
use utf8;
use Encode::inCharset qw(InCP1251 InCP866 InKOI8_R);
my $item = \'хочу узнать кодировку\';

my @chkCharsets = qw(InCP1251 InCP866 InKOI8_R);

my $itemEnc = get_items_encoding($item, @chkCharsets);

 sub get_items_encoding{
  my ($item, @chkCharsets) = @_;
  my $rs = 0;
  for my $itemEnc(@chkCharsets) {
        unless ($item =~ m/(\\p{$itemEnc})+/o){
           ($rs=$itemEnc)=~ s/^In(.*)$/$1/;
           last;
        }
        print   "$item - no match: $itemEnc\\n";
  }
  return $rs;
 }


Цитировать
Ошибка:
Can\'t find Unicode property definition "InCP1251"

 
вот такой момент

2
Perl / DBI дает ошибку на русский язык
« : 28 Ноября 2006, 17:11:29 »
К сожалению только недавно начал заниматься перлом, и к сожалению тестирую скрипты под win xp, если это имеет значение.
Объясните мне пожалуста одну вещь. почему:
my $item = "asdfasdf";#работает
my $item = "фывафыва"; # дает ошибку DBD::mysql::st execute failed: Data too long for column \'title\' at row 1 at file.pl

use DBI;
use DBD::MySQL;

my $dbh = DBI->connect( $dns, $login, $password, {RaiseError=>1} ) ;
$dbh->do("SET NAMES cp1251");

my $sql = "INSERT $tableName (`title`) VALUES ( ? )";
my $sth = $dbh->prepare("$sql");
$sth->trace(2);
$sth->execute( $item ) || die $sth->errstr;
#`title` - varchar

Спасибо заранее

Страницы: [1]