PHP基础|如何解决中文乱码问题?

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

为什么会出现中文乱码?

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

我们将乱码情况分为以下几种,有需要的可以对照下面的几种情况有针对性的解决乱码问题

第一种:解决HTML中中文乱码问题方法

如果你的 HTML 文件文件出现了乱码问题,那么你可以在 head 标签里面加入UTF8编码(国际化编码): UTF-8 是没有国家的编码,也就是独立于任何一种语言,任何语言都可以使用的。


 
 
  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 

示例

我们现在的 HTML5 文件,设置编码更为简单,像下面这样

第二种、HTML和PHP混合的页面解决方案

如何是 HTML 和 PHP 混编,除了按照第一个方法所说的操作之外,还需要在 PHP 文件的最上面加入这句代码:


 
 
  1. <?php header("content-type:text/html;charset=utf-8"); //设置编码 ?>  

第三种、纯PHP页面的中文乱码问题(数据是静态的)

如果你的 PHP 页面出现了乱码,只需要在页面的开始处加入下面代码就可以了。


 
 
  1. <?php header("content-type:text/html;charset=utf-8"); //设置编码?> 

第四种、PHP+Mysql中文乱码问题

这个除了按照第三种所说的操作之外,还要在你的数据查询/修改/增加之前加入数据库编码。而且,值得注意的是,这里的UTF8和之前的不一样,中间是没有横线的。


 
 
  1. <?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 ,这样插入或检索数据时就不会出现乱码了


作者:PHP基础

来源:51CTO

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
JavaScript 关系型数据库 MySQL
解决PHP导出CSV文件中文乱码问题
解决PHP导出CSV文件中文乱码问题
PHP:mb_substr中文字符串截取避免乱码
PHP:mb_substr中文字符串截取避免乱码
PHP:mb_substr中文字符串截取避免乱码
PHP:mb_substr中文字符串截取避免乱码
124 0
|
关系型数据库 MySQL PHP
PHP彻底解决mysql中文乱码
彻底解决mysql中文乱码 mysql是我们项目中非经常常使用的数据型数据库。 可是由于我们须要在数据库保存中文字符,所以经常遇到数据库乱码情况。以下就来介绍一下怎样彻底解决数据库中文乱码情况。   数据库执行 SHOW VARIABLES LIKE '%char%'    看到字符集都是l...
1946 0
|
关系型数据库 MySQL PHP
php中文乱码问题的终极解决方案汇总
学习PHP的时候,发现程序中的中文在输出的时候会出现乱码的问题,那么为什么会出现这种乱码的情况呢?一般来说,乱码的出现有2种原因,一种是由于编码(charset) 设置错误,导致浏览器以错误的编码来解析,从而出现了满屏乱七八糟的“天书”,第二种就是文件被以错误的编码打开,然后保存,比如一个文本文件原先是GB2312编码的,却以UTF-8编码打开再保存,就会出现乱码的问题。
1873 0
|
Web App开发 关系型数据库 MySQL