PHP基础|如何解决中文乱码问题?
为什么会出现中文乱码?
很多新手朋友学习PHP的时候,发现程序中的中文在输出的时候会出现乱码的问题,那么为什么会出现这种乱码的情况呢?一般来说,乱码的出现有2种原因,一种是由于编码 (charset) 设置错误,导致浏览器以错误的编码来解析,从而出现了满屏乱七八糟的“天书”,第二种就是文件被以错误的编码打开,然后保存,比如一个文本文件原先是 GB2312 编码的,却以 UTF-8 编码打开再保存,就会出现乱码的问题。本篇文章,就带大家了解一下,怎么解决php中乱码的问题。
我们将乱码情况分为以下几种,有需要的可以对照下面的几种情况有针对性的解决乱码问题
***种:解决HTML中中文乱码问题方法
如果你的 HTML 文件文件出现了乱码问题,那么你可以在 head 标签里面加入UTF8编码(国际化编码): UTF-8 是没有国家的编码,也就是独立于任何一种语言,任何语言都可以使用的。
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
示例
我们现在的 HTML5 文件,设置编码更为简单,像下面这样
第二种、HTML和PHP混合的页面解决方案
如何是 HTML 和 PHP 混编,除了按照***个方法所说的操作之外,还需要在 PHP 文件的最上面加入这句代码:
- <?php header("content-type:text/html;charset=utf-8"); //设置编码 ?>
第三种、纯PHP页面的中文乱码问题(数据是静态的)
如果你的 PHP 页面出现了乱码,只需要在页面的开始处加入下面代码就可以了。
- <?php header("content-type:text/html;charset=utf-8"); //设置编码?>
第四种、PHP+Mysql中文乱码问题
这个除了按照第三种所说的操作之外,还要在你的数据查询/修改/增加之前加入数据库编码。而且,值得注意的是,这里的UTF8和之前的不一样,中间是没有横线的。
- <?php mysql_query('SET NAMES UTF8'); //接下来的就是查出数据或者修改,增加?>
如何你使用的 MySQL 版本在 4.1 或更高版本,可以在链接数据库操作后,设置一个字符编码,像下面这样
UTF-8 编码只是其中一种编码,如果不想使用 utf-8 编码,也可以使用其他编码,只需将 UTF-8 换成你想使用的编码就可以,目前中文网站开发中主要用的是 GB2312 和 UTF-8 两种编码。
有一点要注意的是在需要做数据库操作的php程序前加的 mysql_query (" set names '编码'");编码,一定要和 php 编码一致,如果 php 编码是 gb2312 那 mysql 编码就是 gb2312 ,如果是 utf-8 那 mysql 编码就是 utf8 ,这样插入或检索数据时就不会出现乱码了
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的