首页 >后端开发 >php教程 > 正文

php如何解决中文乱码问题?

原创2017-05-05 11:06:56569144
为什么会出现中文乱码?

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

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

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

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

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

示例

0.jpg

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

1.jpg

第二种、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 或更高版本,可以在链接数据库操作后,设置一个字符编码,像下面这样

7.jpg

1486188938564607.gifUTF-8编码只是其中一种编码,如果不想使用utf-8编码,也可以使用其他编码,只需将UTF-8换成你想使用的编码就可以,目前中文网站开发中主要用的是GB2312和UTF-8 两种编码。

有一点要注意的是在需要做数据库操作的php程序前加的 mysql_query("set names '编码'");编码,一定要和php编码一致,如果php编码是gb2312那mysql编码就是gb2312,如果是utf-8那mysql编码就是 utf8,这样插入或检索数据时就不会出现乱码了

【相关推荐】

1. HTML5视频教程:《php.cn原创html5视频教程

2. php视频教程:《php.cn独孤九贱(4)-php视频教程

3. php实战视频教程

以上就是php如何解决中文乱码问题?的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码
  • 相关标签:中文,乱码
  • 本文原创发布php中文网,转载请注明出处,感谢您的尊重!
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论条评论
    满目星辰
  • 满目星辰· 2019-09-23 18:40:365楼
  • 很不错,就找到楼主的有用

  • B.M
  • B.M· 2019-04-18 18:23:254楼
  • 完美解决我的问题,就是utf-8中间的-,好多都有-,搞得我迷迷糊糊的

  • Rxuer
  • Rxuer· 2019-03-08 15:13:033楼
  • 有用,非常感谢

  • 、
  • · 2019-01-17 19:22:312楼
  • 试了mysql乱码部分的mysqli_set_charset($con,'utf8');

  • 冷暖自知
  • 冷暖自知· 2018-12-29 16:04:531楼
  • 不错写得很好.

  • php jquery办法就是在php方法加入语句为“header('Content-Type:text/html;charset=utf-8');”并保存即可。
    php cookie办法:首先打开相应的PHP件;然后通过php的内置函数“unicode_encode”将一个unicode字符串转变为想要的编方式即可
    linux php办法:首先找到并打开“httpd.conf”件;然后修改代为“AddDefaultcharset gb2312”;最后重启apache服务即可。
    centos7下的方法是:1、执行命令【yum groupinstall "fonts" -y】安装语言包;2、修改locale.conf配置件,添加【LANG
    vscode的方法是:1、首先依次打开【件】、【首选项】、【设置】;2、然后搜索【encoding】,勾选【Auto Guess Encoding】选项或者在【Encoding】选项指定字符集即可
    vscode集成“git bash”后的的方法是:1、编辑gitconfig件,【encoding = utf-8】;2、编辑inputrc件,【set output-meta
    php html办法:1、在head标签里面加入“UTF-8”编;2、在PHP加入“header("content-type:text/html;charset=utf-
    php字符串截取办法:首先创建一个PHP示例件;然后定义一个“utf_substr”方法;最后通过“substr”等函数实现PHP截取“UTF-8”字符串,并半字符即可。
    curl php办法:首先打开相应的PHP件;然后使用“mb_convert_encoding($res, 'UTF-8', 'UTF-8,GBK,GB2312,BIG5');”方法对结果进行转即可
    phputf-8方法:1、在HTML页面加入代“charset=utf-8”;2、在PHP页面加入代“header("Content-Type: text/html;charset
    wamp php办法:1、在php头部加上语句“header('Content-Type: text/html; charset=UTF-8');”;2、将php件存储为“UTF-8 BOM
    php excel reader导出excel的方法:1、果不使用dump函数,可以通过修改【_defaultEncoding】变量;2、果使用dump函数导出excel,需要修改
    php alert的办法就是在php页面加入语句为“<meta http-equiv="Content-Type" content="text/html
    centos7办法:首先查看系统是否安装了安装包;然后修改配置件【locale.conf】加上【LANG="zh_CN"】;最后重启即可。
    php字符办法:1、改mysql配置件“my.ini”或“my.cnf”;2、在需要做数据库操作的php程序前加入语句“mysql_query("set names '编'&
    mysql写入的方法是:1、首先检查数据库的设置;2、然后调整mysql参数配置,配置件目录是【/etc/mysql/mysql.conf.d/】;3、最后重启mysql服务即可。
    PHP $_POST提交表单方法:在代头部加入“echo '<meta http-equiv="Content-Type" content="text/html
    php下载excel办法:1、在下载的过程不要输出任件信息;2、将输出的excel格式和后缀名保存一致;3、使用“ob_clean()”函数清空缓冲区。
    centos下php方法:首先打开“php.ini”件;然后找到“default_charset = "iso-8859-1"”这一行,将其修改为“default_charset
    php url办法:1、使用“urlencode”函数url编,语法是“string urlencode(string str);”;2、通过“urldecode”函数还原URL

    专题推荐

    推荐视频教程
  • javascript初级视频教程javascript初级视频教程
  • jquery 基础视频教程jquery 基础视频教程
  • 视频教程分类