Perl CGI写CentOS MariaDB数据库乱码问题。
<乱码原因很多,总结无外乎编码转换的问题。>
条件:
1、CentOS 7;
2、通过Perl DBI写MariaDB造成中文乱码.
现象:
1、通过命令行写DB,中文字符正常写入,无乱码;
2、通过Perl DBI写DB,出现中文乱码;
3、MariaDB字符集状态如下:
无论如何尝试,由perl DBI写入的中文数据全是乱码,所做的尝试包括:
1、无脑将上表中各个utf8全部修改为gbk/gb2312;–无效
2、在insert之前各种无脑强制转码: --无效
$str = uri_escape($str);
$theme = encode("utf8", $str);
……
解决:
my $dbh = DBI->connect(“DBI:mysql:database=test2;host=localhost”,“root”,"", {‘RaiseError’ => 1});
$dbh->do(“SET NAMES utf8”); ----新增此行代码
问题解决!
具体原因待后续研究。