困扰我的编码问题(导致中文乱码),由解!!!

php中文网
发布: 2016-06-23 14:12:22
原创
886人浏览过

我的网站页面都是用gb2312编码(不能改),我可以改mysql数据库!
我把mysql数据库中数据从utf8_general_ci改成gb2312_chinese_ci是不是就能从根本解决问题?
utf8_general_ci与gb2312_chinese_ci有什么本质区别,比如在存储容量,读取速度等上?


回复讨论(解决方案)

看过传智播客的php视频,好像听韩老师讲过utf8 汉字是三个字节,而在gb2312,一个汉字是两个字节。

mysql连接时候的编码应该也需要设置

那就是说你的数据库是 utf8_general_ci 的?
不需要修改!
只需在每次连接数据库后执行  set names gbk 即可

utf8_general_ci与gb2312_chinese_ci没有本质区别,但前者与后者占用的存储量比为3:2


你说的页面不允许改,包不包括php代码呢,如果你的php中加了一个:mysql_query("set names utf8");那就麻烦了。

那就是说你的数据库是 utf8_general_ci 的?
不需要修改!
只需在每次连接数据库后执行  set names gbk 即可

utf8_general_ci与gb2312_chinese_ci没有本质区别,但前者与后者占用的存储量比为3:2
set names gbk 可以针对gb2312下的读写正常,是吗?
那如果再用jquery ajax时怎么办,gb2312会乱码?

是的,你页面需要什么编码就 set name 什么编码(只是utf-8要写作utf8)
当数据是发送给 ajax 的时候,再发送前执行
header('Content-type: text/html;charset=GBK');
就可以了

改了数据库设置,原有数据要重写一遍吧?

unicode 码位在0800-ffff范围内的字符utf-8是三个字节,常用的汉、日、朝、蒙、藏字符都在这个范围内

有少量不常用汉字、朝鲜字在010000开外,对应utf-8就是更多字节,但这些字符多为古体字,不常见,一般windows的字体font也不能显示,可以不怎么理会它们

GBK编码汉字和符号是双字节

网站只针对中国简体中文,如果单指数据库是用utf8_general_ci还是gb2312_chinese_ci好,好在哪?

要 gbk_chinese_ci 而不是 gb2312_chinese_ci
前者有两万多汉字,后者只有六千多汉字

gbk_chinese_ci 和 utf8_general_ci 的汉字数量是一样的
但后者要多占50%的存储空间

对网页来说,gbk和gb2312基本没什么区别,因为网页只是个文本,就算超出范围的字符也会照样保留,能否显示只取决于字体, windows的汉字字体基本都是gbk范围的,所以即使网页是gb2312,超过范围的字符也能显示出来

但对于转码或相关操作就要用对了,例如iconv和数据库,应该选 适用且范围较大的GBK,而不是gb2312(如#9所说)

题外话:
gbk和utf8汉字数量不同,后者多一些,但前面我说了, windows的汉字字体基本都是gbk范围的,所以utf-8多出来的汉字未必能显示出来
例如:

呵呵,CSDN看来做了动作,把我的例子不适合的字符后面的文字都去掉了

我举例的是一个unicode为2b768的汉字, 女字边右面一个 军字,这个字属于unicode[version 6] cjk extend D,在utf-8但不在GBK范围内,一般windows字体不能显示,要另装更大的字体(基本都是商业字体,要$的)

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号