我来自匈牙利,如果谈论字符编码会使事情变得复杂。当我对网站进行编码时,我无法避免在MySQL中存储简单数据,而这通常不需要管理员表面来处理。我的意思是我不会让管理员在表格中记录菜单名称。但我不得不。因为在phpMyadmin中记录UTF8属性是不可能的(或者我还没有找到解决方案)。 我的输入在UTF8字段中保持ISO-8859-2编码,因为我通过phpMyadmin发送它。如果我使用UTF8网页,UTF8格式将数据发送到数据库,一切都是UTF,我绝对没问题
所以我的观点是,每当我想将一些UTF8插入到UTF8编码的数据库中时,制作管理界面或类似的东西是间接和耗时的。 phpmyadmin对我来说无法使用。但我不想自己编写另一个phpmyadmin。这没有任何意义。必须有一个解决方案。你能帮忙吗?
(实际的UTF8属性以正确的方式显示。标有蓝线的行已使用phpmyadmin录制,并未存储为UTF8。)
答案 0 :(得分:4)
我只是在黑暗中采取非常狂野的刺:
phpMyAdmin实际上是正确的。不起作用的是您的自定义界面,因为它没有正确设置连接编码。因此,您通过它插入的所有数据都会在数据库中混乱,但恰好在您的应用程序中有一个干净的往返。 phpMyAdmin插入实际的 UTF-8数据,这些数据在通过错误连接检索时会混乱。
请参阅UTF-8 all the way through和Handling Unicode Front To Back In A Web App。
答案 1 :(得分:1)
对于那些可能在将来发现同一问题的人,我在使用此查询设置连接后立即设置了连接编码:
SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'
答案 2 :(得分:0)
我和你有完全相同的问题。过了一会儿,我找到了解决方案,使用utf8-to-html在线转换器 Convert to HTML 。只需键入您的Unicode文本并复制结果,粘贴到您的PHPMyadmin。