Mysql民族默认总出错

如题所述

MYSQL数据库存在着编码问题,主要体现在
数据库里汉字会出现乱码,WEB页面汉字显示不正常。归结起来只有一个原因:会出现编码的地方存在编码不一致。WEB开发中:MYSQL编码主要会出现在
五个地方:1.mysql安装的默认编码(latin1)-在mysql.ini(mysql安装根目录下)中设置。[mysqld]选项,默认没有。添
加即在最后一行加入default-character-set=utf8。2.mysql数据库的编码,原则上默认的编码是mysql安装的默认编码,
也可以在建库时用语句来执行:createdatabasedbnamedefaultcharactersetutf8;我这里是建立一个utf8编码
的dbname数据库。3.mysql数据表的编码,原则上默认是第二步建立的数据库的编码。提倡不要在creattable时加上编码4.利用程序建立
mysql连接时,连接字符串使用的编码。如jdbc,phpmysql_connect(),这个地方必须是与你页面的编码一致。5.WEB程序页面的
编码,charset=utf8;与4必须一致。除上面5个地方外,另有一个不是编码者所能控制的,那就是浏览用户的浏览器的编码,一般是自动选择,就不
列入了。上述五个地方,我所知道的保证不出现乱码的方法是:1无所谓,但是如果可以调整的话,可以设置成你所需要统一的一个编码,如utf82,3比较重
要,我所理解的必须是一致。建议是在建库语句时带上编码,建表时就不指定编码了。4是必须的,php
下:$link=mysql_connect('localhost','root','')ordie('Couldnotconnect:'.mysql_error());
echo'Connectedsuccessfully';mysql_select_db('wordpress')ordie('Couldnotselectdatabase');mysql_query("setnamesutf8;");//
这句如利用PDO的话$dbh=newPDO($dsn,$config['db']['username'],$config['db']
['password']);$dbh->exec('SETCHARACTERSETutf8');//这句5在WEB页面中必须设置成上面的统
一的编码。请不要结束,继续往下看:上述方法中必须统一是统一的编码,我使用的是utf8,为什么使用utf8是我正要说的。追问

大神 我在最后一行添加了default-character-set=utf8后打开mysql命令控制台会闪退,把那句话删掉就不会闪退了,您能解答下吗

温馨提示:答案为网友推荐,仅供参考