0
我有两台服务器。每个都运行PHP/MySQL。我将剪贴板中的6个字符的字符串粘贴到两个数据库中新创建的表中。对表列的检查表明,在两台服务器上,charset和collation都设置为“utf8”和“utf8 general ci”。然后,我在两台服务器上运行以下相同的脚本。来自MySQL的乱码字符
<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;
?>
一台服务器发送以下屏幕
â€~good’
其他在同一浏览器将其发送至屏幕(火狐)
'好'
任何人都可以发现问题或建议我如何解决这个问题?
如何将数据*转换为* mysql?字符也可能在进入时被破坏。你说你从剪贴板中复制它,但它必须比这更复杂:你使用什么程序来实际获取数据到mysql?这显然不能解决你的问题,但要指出的是,首先可能发生的修改的唯一原因是你的单引号实际上不是单引号,而是unicode字符,最有可能是U + 2018和U + 2019 –
我会直接检查两个数据库以查看数据库所在的内容(最好使用命令行中的mysql)。如果你看到两个都是一样的,那么这些角色可能会在输出时被损坏。如果一个人存储了不同的结果,那么你的角色在输入时会受到损坏。 –
请参阅https://stackoverflow.com/questions/38363566/trouble-with-utf8-characters-what-i-see-is-not-what-i-store中的“Mojibake” –