下面是关于“PHP读MYSQL中文乱码的快速解决方法”的完整攻略。
1. 确认数据库字符集和连接字符集
在PHP连接MYSQL时,需要保证数据库和连接字符集是一致的,并且应该都使用UTF-8字符集。可以使用以下代码检测数据库和连接字符集是否一致:
$mysqli->query("SET NAMES 'utf8'");
$sql = "SELECT character_set_name FROM information_schema.`COLUMNS`
WHERE table_name = '$table_name' AND column_name = '$column_name'";
$result = $mysqli->query($sql);
$row = mysqli_fetch_array($result);
echo $row[0];
这样输出的字符集应该都是UTF-8。
如果输出的字符集不是UTF-8,那么需要修改数据库和连接字符集为UTF-8,可以使用以下代码:
$mysqli->query("SET character_set_connection='utf8'");
$mysqli->query("SET character_set_results='utf8'");
$mysqli->query("SET character_set_client='utf8'");
2. 确认PHP文件编码和HTTP头
在编写PHP文件时,需要确认文件编码是UTF-8,并且在文件头中设置HTTP头的Content-Type为text/html;charset=utf-8。例如:
header("Content-Type:text/html;charset=utf-8");
echo "你好";
这样输出就不会出现中文乱码问题。
示例一:插入中文数据
假设有一个users表,其中name字段是中文字符集,需要将中文字符集插入到该字段中。
首先需要使用UTF-8编码插入中文字符到数据库中,可以使用以下代码:
$name = "张三";
$sql = "INSERT INTO users (name) VALUES ('" . $mysqli->real_escape_string(utf8_encode($name)) . "')";
$mysqli->query($sql);
这样可以让中文字符正确存入数据库中。
示例二:从MYSQL中读取中文数据
假设有一个users表,其中name字段是中文字符集,需要从该字段中读取中文数据。
读取中文数据时,需要使用UTF-8编码读取,可以使用以下代码:
$sql = "SELECT * FROM users WHERE id=1";
$result = $mysqli->query($sql);
$row = $result->fetch_assoc();
$name = utf8_decode($row['name']);
echo $name;
这样可以输出正确的中文字符。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP读MYSQL中文乱码的快速解决方法 - Python技术站