我在使用mysql中的perl脚本插入保加利亚语言字符串时遇到问题。如果我使用查询手动插入,那么它工作正常,但在使用perl时,它会将该字符串转换为未知字符。
我已执行以下步骤来解决该问题,但仍然没有运气。
在数据库连接中设置utf8字符集
$dbh->do("set character set utf8");
$dbh->do('SET NAMES utf8');
$dbh->{'mysql_enable_utf8'} = 1;
我也从my.cnf文件中设置了默认字符集utf8。
我仍然会收到未知字符。
任何人都可以建议我如何解决这个问题吗?
由于
答案 0 :(得分:0)
看看这些是否有帮助:
use utf8;
use open ':std', ':encoding(UTF-8)';
不只是MySQL可能搞砸了 - 原始字节可能被错误编码;输出可能是不正确的;等
如果您存储了一些数据,请检查它们是否“正确”。做点什么
SELECT col, HEX(col) FROM tbl WHERE ...
ДЖ
如果在utf8中正确编码,则应为hex D094D096
。请注意,西里尔字母的字符大多为D0xx
十六进制。
我有更多讨论here。