perl mysql中文亂碼 摘自 中國Perl協(xié)會 用戶推廣組 cnchun 2005-06-29 16:57http://perlchina.sun126.com/cgi-bin/ccb/index.cgi 搞了一天總算搞好了。perl5.8+mysql4.1,用perl DBI mysql往數(shù)據(jù)庫插入數(shù)據(jù),總是亂碼,而用phpmyadmin能插入中文;而用perl插入的中文在phpmyadmin里面也是亂碼。數(shù)據(jù)庫的創(chuàng)建,我用了。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里面設(shè)置了[client]default-character-set = gbk[mysqld]default-character-set = gbkmysql -uroot -p;mysql>use cnews;mysql> status--------------Server characterset: gbkDb characterset: gbkClient characterset: gbkConn. characterset: gbk則perl能夠正常插入中文無須其它設(shè)置。如果不在my.cnf里設(shè)置default-character-set,例如:mysql -uroot -p;msyql>use cnewsmysql> statusServer characterset: latin1Db characterset: gbkClient characterset: latin1Conn. characterset: latin1在調(diào)用perl 的時候,需要下面設(shè)置:$db->do("SET character_set_client = ‘gbk‘");$db->do("SET character_set_connection = ‘gbk‘");如果需要顯示結(jié)果,加上$db->do("SET character_set_results= ‘gbk‘ ");其實(shí)可以把database 設(shè)置為gbk,然后用character_set_*來設(shè)置相關(guān)編碼,mysql其實(shí)還是很靈活的。perl運(yùn)行跟linux的locale沒有關(guān)系,對于數(shù)據(jù)庫操作。剛學(xué)perl,希望對跟我一樣的新手有所幫助
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。