中文版 | English

网站首页 | 个人作品 | 站长日志 | 给我留言 | 经典分享 | 友情链接 | 黑白人生


数据库的编码&网页乱码全解决

前几天在国外空间装了个saforums,总是出现乱码,最后发现对于mysql的处理是默认的,又查mysql的schema表发现默认的是latin1处理,而且是默认的latin1_swedish_ci这个能支持的最大单元是2个;又查看了一下gb2312默认的也是带_ci的,支持最大单元也是2个,支持三个单元的有日语还有个什么不记得,不过最值得一提的就是utf-8.现在我才明白为什么国际化都提倡utf-8,因为他能在字节单元上满足所有国家的语言.
php对mysql处理是按latin1处理的,所以saforums的问题就是提交数据按latin1入库,而在数据库本身编码方面由于我设置的是gb2312或者utf-8格式,这样在取出数据的时候按默认latin1取出.而显示格式是gb2312,这样就造成了字节处理上的变化.
所以对于我们中文的程序来说,最重要的就是保证这几个方面:
1.数据传输时的编码格式(浏览器可以设置,其实这里还有个服务器接收后默认处理apache的默认是latin,iis应该是按系统语言决定的,这个暂时没追究)
2.数据入库后的数据库编码处理格式
3.数据取出时的编码格式
4.web最终显示的编码格式.
我们要保证这四个一体就没有所谓的乱码困扰问题了.
如果懒得考虑编码就按默认,这样只有少数几个国家的语言文字不支持(即占用三个单元的)
如果刚刚接触编码可以尝试用gb2312,gbk实现,这样在web里面charset=gb2312也是很好的.
如果国际化还是utf-8最好.



Copyright 1998-2021. All rights reserved.
工信部备案:冀ICP备19032940号-1|公安部备案号:13020802000209