网页乱码问题

很多新手朋友学习PHP的时候,发现程序中的中文在输出的时候会出现乱码的问题,那么为什么会出现这种乱码的情况呢?
一般来说,乱码的出现有2种原因:
一种是由于编码(charset) 设置错误,导致浏览器以错误的编码来解析,从而出现了满屏乱七八糟的“天书”
第二种就是文件被以错误的编码打开,然后保存,比如一个文本文件原先是GB2312编码的,却以UTF-8编码打开再保存,就会出现乱码的问题。使用dos系统操作数据库的时候,编码就比较多了,有客户端的编码,服务器的编码,服务器转换数据的编码,服务器返回数据的编码,数据库的默认编码等等...本篇文章,就带大家了解一下,怎么解决乱码的问题。

1. html网页中的乱码

我们在html代码中有一个meta标签,如下:

<meta http -equiv =“Content-Type” content=”text/html; charset=utf-8”/>

或者

<meta charset=”utf-8”/>

那么也就意味着我们的内容是以utf8编码的,那么浏览器如果以gbk的编码解析,就一定会乱码了,所以如果乱码了,就改一下浏览器解析的编码,如下图:




这个时候,页面就正常了

  1. php页面的乱码

如果php写代码在页面出现乱码了,那么在文档顶部添加一行代码,来声明编码

header("Content-Type:text/html;charset=utf-8");

或者

echo '<meta charset="utf-8" />';
  1. php操作mysql的乱码
    如果用php从数据库查询数据,产生了乱码,那么在连接数据库后执行一行代码
mysql_query("set names utf8");

然后再保证php的编码和客户端(浏览器)的编码保持一致
4.操作数据库的编码
错误为:Invalid default value for sex;这个错误是由于编码不对无法识别sex字段的中文默认值引起的,只需要在执行这条语句之前执行set names 编码即可。
因为编码无法写入,查询结果为问号或乱码的,都属于编码问题,在数据中,有一些变量存储的都是各种编码,如下表:

变量名 含义
Character_set_server Character_set_server
Character_set_client 客户端来源使用的字符集,也就是客户端发过来的查询所使用的字符集
Character_set_connection character_set_client将查询转换为character_set_connection设定的字符集
Character_set_results 查询结果编码的字符集
Character_set_database 当前选中数据库的默认字符集
Character_set_system 系统元数据(字段名等)字符集
Collation_connection 执行字符比较时采用的编码规则
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,074评论 3 119
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,216评论 2 89
  • 书名:《清明上河图密码2》作者:冶文彪 领域:推理,历史出版社:北京联合出版公司阅读时间:2018年3月7日 《清...
    幸运的小鹿阅读 3,287评论 0 0
  • 前有知已知彼,百战不殆。后有知彼解己。以上都是要弄清楚对方才能让自己占有更为有力的位置。 在生活中时常会在还没...
    YONGL阅读 1,261评论 0 0
  • 曾经因为单纯而受骗于是许诺下一次丢掉单纯 曾经因为害羞而被遗忘于是许诺下一次丢掉害羞 泪水一次次洗去往日纯真遗忘一...
    岛上鱼儿儿儿阅读 1,396评论 0 0

友情链接更多精彩内容