PHP 中文乱码问题通常是由于字符编码不一致导致的。字符编码包括 UTF-8、GBK 等,如果 PHP 文件、数据库、浏览器等使用的编码不一致,就会导致中文乱码。
原因:PHP 文件本身编码不正确,可能是 UTF-8 或 GBK 编码错误。
解决方法: 确保 PHP 文件使用 UTF-8 编码保存。
# 使用文本编辑器(如 VSCode)打开文件,检查并设置文件编码为 UTF-8
原因:数据库连接或数据表编码不正确。
解决方法: 确保数据库连接时指定正确的编码。
// 连接 MySQL 数据库时指定编码为 UTF-8
$mysqli = new mysqli("localhost", "user", "password", "database");
$mysqli->set_charset("utf8mb4");
确保数据表和字段使用 UTF-8 编码。
-- 创建数据表时指定编码为 UTF-8
CREATE TABLE `example` (
`id` INT PRIMARY KEY,
`name` VARCHAR(255)
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
原因:浏览器解析页面时使用的编码不正确。
解决方法: 在 HTML 文件中指定正确的字符编码。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>中文页面</title>
</head>
<body>
<h1>中文标题</h1>
<p>中文内容</p>
</body>
</html>
以下是一个完整的 PHP 文件示例,展示了如何处理中文乱码问题:
<?php
// 设置文件编码为 UTF-8
header('Content-Type: text/html; charset=utf-8');
// 连接 MySQL 数据库并指定编码为 UTF-8
$mysqli = new mysqli("localhost", "user", "password", "database");
$mysqli->set_charset("utf8mb4");
// 查询数据
$result = $mysqli->query("SELECT * FROM example");
// 输出结果
while ($row = $result->fetch_assoc()) {
echo $row['name'] . "<br>";
}
$mysqli->close();
?>
通过以上方法,可以有效解决 PHP 中文乱码问题。
领取专属 10元无门槛券
手把手带您无忧上云