作者tower0224 (想)
看板Perl
标题Re: [SQL ] Perl DBI
时间Tue Jan 29 02:50:11 2008
※ 引述《LiloHuang (相见不如怀念)》之铭言:
: ※ 引述《b60413 (赖宏)》之铭言:
: : 作者: b60413 (赖宏) 看板: Database
: : 标题: [SQL ] Perl DBI
: : 时间: Sun Jan 27 00:00:12 2008
: : 请问一下 有人有试过用Perl的DBI Module来连接Mysql吗?
: : 我在用Perl增加资料的时候 如果有中文就会变成乱码
: : 网路上只有PHP的解法 就是mysql_query("SET NAMES 'utf8'")
: : 不过对於Perl的用法 好像就没了
: : 不知道有没有人跟我遇到同样的问题?
: my $dbh = DBI->connect("DBI:mysql:$database",$accunt,$password);
: my $sth = $dbh->prepare("SET NAMES 'utf8'");
: $sth->execute;
: $sth->finish;
: # 这种问题一定要自己去看原始文件
: # 先去CPAN把DBI模组的用法看熟再来问比较得当
http://topic.csdn.net/t/20060715/09/4881953.html
这是我找我的问题的时候找到的@@
也许应该可以回答你的问题吧...!!!
我为我所在的公司,写一些内部应用程序,B/S的,工具是perl+mysql,OS是2000(繁).由於是
港资公司,
所以,OS都是繁体的,我把页面的编码设置为 big5 ,这样,无论从页面输入也好,从
数据库读数据也好,都没有问题.但是,昨天我偶然发现,如果我用简体输入的话,那麽,读到
数据库里的数据,就都成乱码了,
(因为我昨天才发现在繁体OS下也可以用简体来写汉字,我用简体字往程序里面一输入,
天!!!乱码了)
有热心的兄弟说,让我用UTF-8,结果我 charset("utf8"); 把页面设置成utf8,这下
,连页面的显示都成
乱码了,我不甘心,我 charset("UTF-8"); 结果是一样的,页面都显示正常,但数据
库中依然是乱码,还有位热心的兄弟说,在mysql服务器上,写入之前把所有数据都转换成
Unicode,然後我就想了个办法:(见下)
(比说下面的代码)
#!/usr/bin -w
use strict;
use DBI;
my $var=param("cgi_var");
my $connect=DBI->connect("DBI:mysql:test","root","test");
my $select=$connect->prepare("insert into myTable
values(convert($var using utf8));");
$select->execute();
结果,用简体输入的话,数据库里的数据依然是乱码,我又分析
是不是,我在 form 里输入的时候,由於页面是 charset("big5"); 所以,我接
收的参数,就是经过
用big5码的方式来解释简体输入的,所以就得到的是乱码?
以上是我的猜测.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.230.167.190