要想完美解决 PHP 中文乱码问题,需要按照以下步骤进行设置:
打开 php.ini 文件,找到以下两行所在位置(可能会有多处):
;default_charset =
;mbstring.language = Japanese
将其修改为:
default_charset = "utf-8"
mbstring.language = "Neutral"
这样就可以在 PHP 中设置默认编码为 utf-8,同时使用一种中立的语言设置。
在 PHP 文件中添加以下代码:
header("Content-type:text/html;charset=utf-8");
这样浏览器就可以正确读取页面的编码,避免中文乱码问题。
以下是一个使用 UTF-8 编码的示例:
<?php
header("Content-type:text/html;charset=utf-8");
echo "你好,世界!";
?>
这个示例输出了一段 UTF-8 编码的中文字符串,通过设置 HTTP 头,浏览器可以正确读取这个字符串而不会出现中文乱码。
以下是一个从数据库读取数据的示例:
<?php
header("Content-type:text/html;charset=utf-8");
$conn = mysqli_connect("localhost", "user", "password", "database");
mysqli_set_charset($conn, "utf8");
$result = mysqli_query($conn, "SELECT * FROM news");
while ($row = mysqli_fetch_assoc($result)) {
echo $row["title"];
}
mysqli_close($conn);
?>
在这个示例中,通过 mysqli_set_charset 函数设置连接的字符集为 utf8,从而正确读取数据库中存储的中文字符。同时也需要设置 HTTP 头,以便浏览器正确解析输出的中文字符。