使用perl脚本插入数据时Utf8字符集编码错误

时间:2015-08-22 06:57:18

标签: mysql perl utf-8

我在使用mysql中的perl脚本插入保加利亚语言字符串时遇到问题。如果我使用查询手动插入,那么它工作正常,但在使用perl时,它会将该字符串转换为未知字符。

我已执行以下步骤来解决该问题,但仍然没有运气。

在数据库连接中设置utf8字符集

$dbh->do("set character set utf8");
$dbh->do('SET NAMES utf8');
$dbh->{'mysql_enable_utf8'} = 1;

我也从my.cnf文件中设置了默认字符集utf8。

我仍然会收到未知字符。

任何人都可以建议我如何解决这个问题吗?

由于

1 个答案:

答案 0 :(得分:0)

看看这些是否有帮助:

use utf8;
use open ':std', ':encoding(UTF-8)';

不只是MySQL可能搞砸了 - 原始字节可能被错误编码;输出可能是不正确的;等

如果您存储了一些数据,请检查它们是否“正确”。做点什么

SELECT col, HEX(col) FROM tbl WHERE ...

ДЖ如果在utf8中正确编码,则应为hex D094D096。请注意,西里尔字母的字符大多为D0xx十六进制。

我有更多讨论here