PHP解决输出中文乱码问题讲解

解决 PHP 输出中文乱码的问题

问题描述

今天给导航狗(https://daohanggou.cn/)的 PHP 程序和数据库文件迁移了服务器, 但是迁移到新的服务器上之后 PHP 输出的中文和 PHP 输出的从 MySQL 数据库查询出来的数据中的中文都出现了乱码的情况. 下面记录一下我解决该问题的过程.

解决步骤

首先解决的是 PHP 程序直接输出 (输出的不是从数据库中查询的数据) 的中文乱码的问题. 由于我使用的是一台虚拟主机, 没有管理员权限, 无法修改 PHP 的配置文件, 因此, 对于这个问题我的解决办法是在 PHP 文件的头部加上如下代码:

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

或者加上如下代码也可以:

<?php
header("Content-type:text/html;charset=utf-8");
?>

这样处理之后, 输出的结果是这样的 (图 1):

图 1

如图 1 所示, 我用红框标注的是 PHP 程序从 MySQL 数据库查询的结果, 查询结果中的英文可以正常显示, 中文却变成了问号. 关于这个问题, 我的解决方法是在 MySQL 查询语句的前一行加入如下代码:

mysql_query('SET NAMES UTF8');

如图 2:

图 2

如果经过上面的步骤之后问题还是没有解决, 可以尝试使用下面的 SQL 命令将出现中文编码错误的数据表改成 UTF-8 编码:

ALTER TABLE `Test` DEFAULT CHARACTER SET utf8;

到此这篇关于PHP解决输出中文乱码问题讲解的文章就介绍到这了,更多相关PHP解决中文乱码内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • php写入mysql中文乱码的实例解决方法

    php写入mysql出现中文乱码的解决办法是:在建立数据库连接之后,将该连接的编码方式改为中文. 代码如下: $linkID=@mysql_connect("localhost","root","admin"); if(!$linkID) { echo "数据库连接失败!"; } echo "数据库连接成功!"; mysql_query("SET character_set_connection

  • php输出文字乱码的解决方法

    php输出文字乱码的解决办法: 在php文件最开头写上: <?php header('Content-type: text/html; charset=UTF8'); // UTF8不行改成GBK试试,与你保存的格式匹配 ?> PHP简介: PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor".自20世纪90年代国内互联网开始发展到现在,互联网信息几乎覆盖了我们日常活动所有知识范畴,并逐渐成为我们

  • 解决zabbix监控因php问题导致图形界面中文乱码方法

    解决因编译php中添加了-enable-gd-jis-conv选项导致Zabbix监控系统图形界面中文乱码问题 现象: php编译参数: 说明: 如果PHP编译时启用–enable-gd-jis-conv选项的话,那么非ASCII字符(例如汉字.拼音.希腊文和箭头) 会被当成EUC-JP编码 (phpinfo中美其名曰"支持JIS编码的字体"), 从而导致乱码(由于西文字体没有假名或汉字,一般表现为全部是方框).imagettftext()函数是将字符写入到图片的函数,这个问题就是由这

  • php写入txt乱码的解决方法

    相信很多人在使用PHP的过程中都遇到过生成文件乱码的情况,不论是使用fwrite还是file_put_contents写入.可能你会先尝试从编码入手尝试解决,但最终的结果往往是不理想的,尽管我们都将其转换为了UTF-8编码了... 那么究其根本原因是什么呢?就是缺少头部BOM(当然,这里指的肯定不是Js的Bom). BOM 既然提到了BOM,那么可能有的同学不太了解这个家伙,这里我简单说一下,老鸟可以跳过.在Windows下用记事本之类的程序将文本文件保存为UTF-8格式时,记事本会在文件头前面

  • PHP读取文件,解决中文乱码UTF-8的方法分析

    本文实例讲述了PHP读取文件,解决中文乱码UTF-8的方法.分享给大家供大家参考,具体如下: $opts = array( 'file' => array( 'encoding' => "utf-8" ) ); $opts = array('http' => array('encoding' => 'utf-8')); $ctxt = stream_context_create($opts); $content = file_get_contents($file

  • PHP微信发送推送消息乱码的解决方法

    先用urlencode是因为中文在数组转json时会被编码为unicode,微信接口无法识别,所以得在json_encode前先来个编码,等转换后再用urldecode转回来,这样传输给接口的就是正常的中文了. 参考代码: $message = array( 'touser'=>$touser, 'msgtype'=>'text', 'text'=>array('content'=>urlencode($text)) ); $message = urldecode(json_enc

  • 解决php写入数据库乱码的问题

    对于乱码这个问题php开发者几乎都会有碰到过,我们下面主要是介绍了php mysql数据库连接时乱码解决方法. MYSQL数据库使用UTF-8编码的问题 1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将"整理"设置为:"utf8_general_ci"或执行语句: CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创建数据表的时候:如果是该字段

  • PHP fopen中文文件名乱码问题解决方案

    一般在php中会使用fopen进行生成文件,但是当文件名存在中文时保存文件会出现中文乱码. 源代码: <?php $fileName = __DIR__ . '\测试.txt'; $fp = fopen($fileName, 'w'); fwrite($fp, '这是中文内容'); fclose($fp); echo $fileName.'<br>'; if(file_exists($fileName)){ echo 'hhhhh'; } ?> 结果: 文件名是乱码 解决: 对文件

  • PHP解决输出中文乱码问题讲解

    解决 PHP 输出中文乱码的问题 问题描述 今天给导航狗(https://daohanggou.cn/)的 PHP 程序和数据库文件迁移了服务器, 但是迁移到新的服务器上之后 PHP 输出的中文和 PHP 输出的从 MySQL 数据库查询出来的数据中的中文都出现了乱码的情况. 下面记录一下我解决该问题的过程. 解决步骤 首先解决的是 PHP 程序直接输出 (输出的不是从数据库中查询的数据) 的中文乱码的问题. 由于我使用的是一台虚拟主机, 没有管理员权限, 无法修改 PHP 的配置文件, 因此,

  • 远程linux xshell下输出中文乱码解决方法

    使用xshell登录中文版CentOS或者redhat时,在xshell下如果输出的是中文的话可能会显示乱码,通过如下办法可以有效的解决乱码问题 linux中文乱码解决方法如下: 复制代码 代码如下: [root@localhost ~]# cd /etc/sysconfig/ [root@localhost sysconfig]# cp i18n i18n.bak #备份i18n文件 [root@localhost sysconfig]# echo "" >i18n [root

  • 完美解决在Servlet中出现一个输出中文乱码的问题

    如下所示: 在Servlet中出现一个输出中文乱码的问题,已经解. @Override public void doPost(HttpServletRequest reqeust, HttpServletResponse response) throws ServletException, IOException { //PrintWriter out = response.getWriter();在还没有给response指定编码格式时就获取了他的输出流,所以一直乱码 reqeust.setC

  • 解决IntelliJ IDEA 控制台输出中文乱码问题(史上最简单)

    首先,找到 IntelliJ IDEA 的安装目录,进入bin目录下,定位到idea.vmoptions文件,如下图所示: 双击打开idea.vmoptions文件,如下图所示: 然后,在其中追加-Dfile.encoding=UTF-8代码,如下图所示: 最后,在 IntelliJ IDEA 中的"Run/Debug Configurations"中,修改虚拟机参数" VM options ",内容与在文件idea.vmoptions中追加的内容相同,皆为-Dfi

  • 解决Python3用PIL的ImageFont输出中文乱码的问题

    今天在用python3+ImageFont输出中文时,结果显示乱码 # coding:utf-8 from PIL import Image, ImageDraw, ImageFont image= Image.new('RGB', (559, 320),(255,255,255)) draw = ImageDraw.Draw(image) # draw.text() font = ImageFont.truetype("arial", 40, encoding="unic&

  • 谈谈为JAXB和response设置编码,解决wechat4j中文乱码的问题

    如果有哪一个做程序员的小伙伴说自己没有遇到中文乱码问题,我是不愿意相信的.今天在做微信订阅号的智能回复时,又一时迷乱的跳进了中文乱码这个火坑.刚解决问题时,都欢呼雀跃了,完全忘记了她曾经带给我的痛苦. 一.问题描述 看到没,红色框框内的乱码赤裸裸的对我进行挑衅,而我却无可奈何,真是糟糕透顶. 二.寻求解决之道 面对问题,只有拿着刀逼自己去解决啊,能怎么样呢? 首先,必须搞清楚微信智能回复的机制,画图如下: ps,工具用得不好,请见谅. 接下来,我们抓重点,看乱码重要发生在什么位置. 1.cont

  • 解决python中文乱码问题方法总结

    在运行这样类似的代码: #!/usr/bin/env pythons="中文"print s 最近经常遇到这样的问题: 问题一: SyntaxError: Non-ASCII character '\xe4' in file E:\coding\python\Untitled 6.py on line 3, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details 问题二: Un

  • vscode终端输出中文乱码问题解决图文教程

    目录 乱码原因 方法一(永久性) 方法二(永久性)强力推荐!!!!!!!!!!! 附加(CMD修改成旧控制台) 方法三(临时性) 总结 解决vscode终端输出中文乱码问题,强推方法二,少走几年弯路 解决网上终端chcp65001仍然无效,或者vscode由utf-8改为GBK仍然无效的问题,提供了三个方案,c/c++设置通用 乱码原因 因windows中文版系统cmd编码默认为GBK,而vscode默认新建文件的编码为UTF-8所以会出现中文乱码情况 方法一(永久性) 将系统默认编码改为UTF

  • JSP利用过滤器解决request中文乱码问题

    本文为大家分享了JSP用过滤器解决request中文乱码问题,具体内容如下 (1)客户端的数据一般是通过HTTP  GET/POST方式提交给服务器,在服务器端用request.getParameter() 读取参数时,很容易出现中文乱码现象. (2)用过滤器解决request中文乱码问题. (3)代码如下: package my; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public clas

  • 解决phpmyadmin中文乱码问题。。。

    解决phpmyadmin中文乱码问题... 去phpMyAdmin的根目录下,打开以下这个文件: libraries/select_lang.lib.php 1.找到有"zh-gb2312"的那一行,把'zh-gb2312' 改成 'zh-gb2312-utf-8' 为什么这样加?那是因为服务器会把没有"-utf-8"的语言过滤掉,在libraries/database_interface.lib.php 第168行,根据英文说:"为了防止混淆"

随机推荐