isnoopy
如何向数据库中插入Unicode字符?
use DBI;
#...
#...
$insert_sql = "insert into t_person_infor(person_name, uri_path, person_abs, score) values(?, ?, ?, ?)";
$sth = $dbh->prepare_cached($insert_sql);
#...
#...
if (!$sth->execute("$1", "$2", "$3", 10000)){
print $sth->errstr, "/n";
next;
}
数据库这几个字段都是unicode的,$1,$2, $3都是从Unicode文本中读取出来的。经测试将$1,$2, $3打到文本中显示正常,但是插入数据库老是出现乱码。不知道该如何解决呢?如何向数据库中插入Unicode字符?
[[i] 本帖最后由 isnoopy 于 2008-5-9 13:25 编辑 [/i]]
isnoopy
谢谢apile的回答,但还是不知道该怎么解决。可能我还没说明白,数据库其中几个字段如下:
person_name nvarchar(64)
uri_path nvarchar(512)
person_abs ntext(16)
score int(4)
也就是说数据库字段用的应该是UTF-16,我读文本时用的是open(FileInp,"<:encoding(UTF-16)", "$srcfile") or die "can't open $srcfile: $!";
也是用的UTF-16编码,那么怎么会插入时不正确呢?
补充一下, 用的是SQL Server2000.
[[i] 本帖最后由 isnoopy 于 2008-5-9 15:07 编辑 [/i]]