来自 MySQL 的乱码
Garbled characters from MySQL
我有两台服务器。每个 运行s PHP/MySQL。我将剪贴板中的 6 个字符的字符串粘贴到两个数据库中新创建的 tables 中。检查 table 列显示字符集和排序规则在两台服务器上都设置为 "utf8" 和 "utf8 general ci"。然后,我 运行 在两台服务器上执行以下相同的脚本。
<meta charset="utf-8">
<?php
$sql = "SELECT * FROM temp";
$link=mysqli_connect($DB_SERVER,$DB_LOGIN,$DB_PASSWORD,$DB);
$result=mysqli_query($link,$sql);
mysqli_close($link);
$row=mysqli_fetch_object($result);
$details=$row->details;
echo $details;
?>
一台服务器将以下内容发送到屏幕
‘好’
对方将此发送到同一浏览器 (Firefox) 中的屏幕
‘好’
任何人都可以发现问题或建议我如何解决这个问题吗?
问题:
浏览器误解了编码。
可能的原因:
- 你没有指定mysqli连接的编码,使用mysqli::set_charset()
- 您没有指定 HTML 5 启用 Unicode (UTF-8) 的文档类型
<!DOCTYPE html>
- 在 HTTP-header
中指定了另一种编码
- 网络服务器使用另一种编码提供页面并覆盖
header()
- 如果没有配置,一个 PHP 实例的配置可能与另一个实例不同。
- 如果没有配置一个PHP实例可能是5.6之前的旧版本,默认没有配置UTF-8。
- 数据粘贴到两个数据库中的方式不同,您可能需要仔细检查。
我有两台服务器。每个 运行s PHP/MySQL。我将剪贴板中的 6 个字符的字符串粘贴到两个数据库中新创建的 tables 中。检查 table 列显示字符集和排序规则在两台服务器上都设置为 "utf8" 和 "utf8 general ci"。然后,我 运行 在两台服务器上执行以下相同的脚本。
<meta charset="utf-8">
<?php
$sql = "SELECT * FROM temp";
$link=mysqli_connect($DB_SERVER,$DB_LOGIN,$DB_PASSWORD,$DB);
$result=mysqli_query($link,$sql);
mysqli_close($link);
$row=mysqli_fetch_object($result);
$details=$row->details;
echo $details;
?>
一台服务器将以下内容发送到屏幕
‘好’
对方将此发送到同一浏览器 (Firefox) 中的屏幕
‘好’
任何人都可以发现问题或建议我如何解决这个问题吗?
问题:
浏览器误解了编码。
可能的原因:
- 你没有指定mysqli连接的编码,使用mysqli::set_charset()
- 您没有指定 HTML 5 启用 Unicode (UTF-8) 的文档类型
<!DOCTYPE html>
- 在 HTTP-header 中指定了另一种编码
- 网络服务器使用另一种编码提供页面并覆盖
header()
- 如果没有配置,一个 PHP 实例的配置可能与另一个实例不同。
- 如果没有配置一个PHP实例可能是5.6之前的旧版本,默认没有配置UTF-8。
- 数据粘贴到两个数据库中的方式不同,您可能需要仔细检查。