PHP输出中文乱码解决:编码终结者

学习PHP之初,根本就没有意识到过有编码那回事儿,随着对中文的输出越来越多,遇到输出乱码的情况也就更加普遍了。最早我们怀疑是数据库编码的问题,于是在PHP代码中的解决的办法是:
mysql_query("SET NAMES UTF8");

但这样做了后,网页显示的仍然是乱码,于是有修改网页头部信息:
header(‘Content-type:text/html;charset=UTF8‘);

顺便还找到条其他命令,也不知道能起到什么作用,反正遇到乱码的时候就把它加进去,解决问题即可:
declare(encoding=‘UTF-8‘);

还有一种情况,是文件编码与输出编码冲突,例如PHP文件编码是ANSI(如果你用windows记事本创建的PHP文件,默认就是ANSI),虽然我也不知道ANSI具体是什么,但我们希望输出的是UTF-8,所以,还是乱码了,于是,又在浏览器显示编码中设置网页显示编码为UTF-8:

问题到此,基本能够解决显示乱码的现象了!

但是,我觉得不应该就此结束!因为我们以后还会遇到编码冲突的情况,有没有防患于未然的方案呢?

我大胆地思考这个问题,然后百度了一下“PHP转换字符串编码”,果然有对应的函数可以解决这个问题!

那就是:

mb_detect_encoding — 检测字符的编码,和mb_convert_encoding — 转换字符的编码,这两个函数。

关于这两个函数的用法,请各位自己去搜索吧,PHP手册里面也很详尽,我就不在此占用篇幅了。

另外还有个函数:iconv,它的效率比mb_convert_encoding 高,但功能没mb_convert_encoding 好,了解后你自己取舍吧!

但,经过本人研究了一两天,貌似这两个函数并没如我所愿地把字符串随意地转换成GBK,GB2312,UTF-8的编码,也许是我的“打开方式不对”?总之,方法找到了,只是用法还没掌握,也就是时间的问题而已啦。

所以,在此分享本人的经验,希望能帮小白清除这方面的疑惑,也欢迎大牛在此补充指教哈!

时间: 2024-10-29 19:09:53

PHP输出中文乱码解决:编码终结者的相关文章

idea 控制台输出 中文乱码 解决方法

1.tomcat输出到控制台(console)出现中文乱码,设置Run/Debug Configuration中设置environment variables 来解决. Idea=>Run=>Edit Configuration,弹出的对话框中,在Startup/Connection 中Run中添加environment variables JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8.如下图所示: 2.对于maven构建的项目,由于idea中maven的配置

使用WebLogic时控制台输出中文乱码解决方法(转)

1.找到weblogic安装目录,当前项目配置的domain 2.找到bin下的setDomainEnv.cmd文件 3.打开文件,从文件最后搜索第一个set JAVA_OPTIONS=%JAVA_OPTIONS%,修改为set JAVA_OPTIONS=%JAVA_OPTIONS%   -Dfile.encoding=utf-8 4.保存文件,重新启动服务 原文地址:http://blog.csdn.net/grpideas/article/details/6067657

java中文乱码解决之道(七)-----JSP页面编码过程

我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="GBK" %> 在上面代码中有两个地方存在编码:pageEncoding.contentType的charset.其中pageEnco

编码(ACSII unicod UTF-8)、QT输出中文乱码深入分析

总结: 1. qt输出中文乱码原因分析 qt的编程环境默认是utf-8编码格式(关于编码见下文知识要点一): cout << "中文" << endl; 程序运行,程序并不认识ANSI,UTF-8以及任何其他编码.系统只知道处理你给它的字符的二进制表示. 关于  "中""文" 的3种编码二进制内容: ANSI(GBK): 0xd6d0  0xcec4 UTF-8: 0xe4b8ad 0xe69687 Unicode: 0x

idea中tomcat控制台输出中文乱码问题的解决

idea中tomcat控制台输出中文乱码问题的解决 每次用新的tomcat和idea都会遇到tomcat控制台中文乱码问题,故在此整理. 基本上都是需要修改tomcat的启动参数(如果本身idea编码都统一设置为utf-8了) 打开tomcat下的bin目录,找到catalina.bat文件 找到 JAVA_OPTS 参数,在其中加上 -Dfile.encoding=UTF-8(用的7.0.82版本的设置为UTF-8,8.0.20版本的需要设置为GBK,目前不知道原因,可能是组件的编码有变化)

java中文乱码解决之道(二)-----字符编码详解:基础知识 + ASCII + GB**

在上篇博文(java中文乱码解决之道(一)-----认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述字符集.字符编码等基础知识和ASCII.GB的详情. 一.基础知识 在了解各种字符集之前我们需要了解一些最基础的知识,如:编码.字符.字符集.字符编码基础知识. 编码 计算机中存储的信息都是用二进制表示的,我们在屏幕上所看到文字.图片等都是通过二进制转换的结果.编码是信息从一种形式或格式转换为另一种形式的过程,通俗点讲就是就是将我们看到的文字.图片等信息按照

resin后台输出中文乱码的解决办法!

最近从tomcat移植到resin,发现这东西不错啊! 只是后台输出时有时候中文会乱码. 现在找到resin后台输出中文乱码的解决办法: 编辑conf/resin.con文件: <!--javac compiler="internal" args="-source 1.5"/--> 修改成这样: <javac compiler="javac" args="-encoding utf-8"/> 重启服务器

解决IntelliJ IDEA控制台输出中文乱码问题

一.问题情况: IntelliJ IDEA 控制台输出中文乱码部分如图所示: 找到intellij idea的file---settings---Editor---FileEncodings的GlobalEncoding和ProjectEncoding和Default encoding for properties都配置成UTF-8 在部署Tomcat的VM options项中添加:-Dfile.encoding=UTF-8 重启Intellij idea即可解决乱码问题 原文地址:https:

解决IntelliJ IDEA 控制台输出中文乱码问题

解决IntelliJ IDEA 控制台输出中文乱码问题 问题描述:如图,控制台输出的字符,乱码 解决方案 第一步:修改intellij idea配置文件: 找到Intellij idea安装目录,bin文件夹下面in的64.exe.vmoptions 和 idea.exe.vmoption这两个文件. 分别再这两个文件中添加: -Dfile.encoding=UTF-8 第二步:修改intellij idea中的设置 第三步:修改Tomcat的配置参数 第四步:重启IntelliJ IDEA即可