我面临的问题是在mysql中使用perl脚本插入保加利亚语言字符串。如果我使用查询进行手动插入,那么它工作得很好,但在使用perl时,它会将该字符串转换为未知字符。
我已经执行了以下步骤来解决这个问题,但仍然没有运气。
设置utf8字符集
$dbh->do("set character set utf8");
$dbh->do('SET NAMES utf8');
$dbh->{'mysql_enable_utf8'} = 1;
我还设置了默认字符集utf8从我的。cnf文件。
我仍然得到未知字符。
谁能建议我如何解决这个问题?
谢谢
看看是否有帮助:
use utf8;
use open ':std', ':encoding(UTF-8)';
不仅仅是MySQL会把事情搞砸——原始字节可能被错误编码;输出可能不正确地呈现;等。
如果你存储了一些数据,让我们检查一下它们是否"正确"。比如
SELECT col, HEX(col) FROM tbl WHERE ...
如果在utf8中正确编码, ДЖ
应该显示为十六进制D094D096
。请注意,Cyrillic的字符大多使用D0xx
十六进制。