首页 >后端开发 >php教程 >请教php+mysql中文字符乱码问题,麻烦大家给提提建议

请教php+mysql中文字符乱码问题,麻烦大家给提提建议

WBOY
WBOY原创
2016-06-23 14:20:27900浏览

网站用php+mysql做的,租用的服务器是linux的,我的页面用的gb2312的字符编码,创建数据表时用了"set names gb2312",客户自己提交的中文有的字符显示不出来,有的乱码。


想知道我应该怎么设置?(我网站的客户都是国内的,就想能正常添加和显示中文)


回复讨论(解决方案)

mysql中字段和数据库表的编码设置的是什么?

注意 gb2312 和 gbk 的区别
gb2312 是 gbk 的子集,非常用字都不在其中
目前的浏览器和编辑器都不区分两者,只认前面的 GB
但 MySQL 是严格区分的,不在 gb2312 中的 gbk 字符都将不能正确处理

所以可能含有中文的字段都应设置连接校对为 gbk_chinese_ci 或 utf8_general_ci
并在连接数据库后,执行  set names gbk 指令

注意:字符集设置的改变,只对其后的数据起作用,不会影响到表中的原有数据。即:原来乱码的,依然是乱码
      

注意 gb2312 和 gbk 的区别
gb2312 是 gbk 的子集,非常用字都不在其中
目前的浏览器和编辑器都不区分两者,只认前面的 GB
但 MySQL 是严格区分的,不在 gb2312 中的 gbk 字符都将不能正确处理

所以可能含有中文的字段都应设置连接校对为 gbk_chinese_ci 或 utf8_general_ci
并在连接数据库后,执行  set names gbk 指令

注意:字符集设置的改变,只对其后的数据起作用,不会影响到表中的原有数据。即:原来乱码的,依然是乱码
      
学习。。。。。

还是不确定我到底该怎么设置。

服务器租用的虚拟主机,LINUX的。网站客户是国内的。我理解的是又两种选择,意识统一成UTF8的,再就是统一成GBK的,是这样吧?

如果想用UTF8,我具体该怎么设置?页面设计我用的DREAMWEAVERCS5,默认正好是utf-8,创建MYSQL表是用了set names utf8,还需要做什么?

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn