我总是在phpmyadmin中看到特殊字符编码如下:
میثم ابراهیمیجØعشق ØŒ سر ب راه ØŒ نبض ØŒ شبهای ØŒ غنچه ها ØŒ شکوه ØŒ همین امروز ØŒ عادت ت'
我一直认为这只是一个与phpmyadmin相关的问题,因为在我的应用程序中所有这些都被正确显示。 现在我正在导出这个数据库,在我的mysql转储中,我看到上面的字符,所以它们似乎以这种方式存储在数据库中。
有一种简单的方法可以转储utf8字符吗?
我已尝试遵循这些建议:I need help fixing Broken UTF8 encoding
但是让角色可视化的唯一方法是将它们打印在网页上并添加到顶部:
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
字段的整理是utf8_unicode_ci。 连接漏洞:
$options = array(\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',);
我在数据库中输入符号€
然后从phpmyadmin输入我选择:SELECT name, HEX(name) as hex_name FROM `items`
这就是结果:
名称â,¬ hex_name C3A2E2809AC2AC
我会根据要求提供任何进一步的信息 感谢
答案 0 :(得分:0)
你想要€
?但是十六进制是C3A2E2809AC2AC
。这是&#34;双重编码&#34; - 存储数据时。
请参阅Trouble with utf8 characters; what I see is not what I stored,特别是在关于&#34;双重编码&#34;的讨论中。
数据被破坏。您可以使用凌乱的UPDATE
来修复数据。请参阅http://mysql.rjweb.org/doc.php/charcoll#example_of_double_encoding。
修改强>
你原来的东西看起来像
CONVERT(BINARY(CONVERT('میثم اب' USING latin1)) USING utf8mb4)میثم اب -- mojibake to ut8,