分享

perl mysql中文乱码

 weicat 2007-08-18
perl mysql中文乱码 摘自 中国Perl协会 用户推广组 cnchun 2005-06-29 16:57 http://perlchina./cgi-bin/ccb/index.cgi 搞了一天总算搞好了。 perl5.8+mysql4.1,用perl DBI mysql往数据库插入数据,总是乱码,而用phpmyadmin能插入中文;而用perl插入的中文在phpmyadmin里面也是乱码。数据库的创建,我用了。 create database cnews default character set gbk; CREATE TABLE `news` ( `id` int(10) unsigned NOT NULL auto_increment, `title` varchar(50) default NULL, `context` text, `date` date default NULL, `site` varchar(20) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=gbk 如果在my.cnf里面设置了 [client] default-character-set = gbk [mysqld] default-character-set = gbk mysql -uroot -p; mysql>use cnews; mysql> status -------------- Server characterset: gbk Db characterset: gbk Client characterset: gbk Conn. characterset: gbk 则perl能够正常插入中文无须其它设置。 如果不在my.cnf里设置default-character-set,例如: mysql -uroot -p; msyql>use cnews mysql> status Server characterset: latin1 Db characterset: gbk Client characterset: latin1 Conn. characterset: latin1 在调用perl 的时候,需要下面设置: $db->do("SET character_set_client = ‘gbk‘"); $db->do("SET character_set_connection = ‘gbk‘"); 如果需要显示结果,加上 $db->do("SET character_set_results= ‘gbk‘ "); 其实可以把database 设置为gbk,然后用character_set_*来设置相关编码,mysql其实还是很灵活的。perl运行跟linux的locale没有关系,对于数据库操作。 刚学perl,希望对跟我一样的新手有所帮助

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多