解决 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解决中文乱码内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!