|
|
1
1
这几乎可以肯定是由于有人从一个不兼容的字符集中剪切和粘贴。 最好的猜测是,他们是从使用非ASCII Unicode符号作为引号和语音标记的Microsoft Word中完成的,而不是普通友好的ASCII符号。UTF-8编码为一系列80-FF中的两个或多个字节,但网页通常设置为“Latin-1”,它将这些字节视为单个字符,通常是带重音的a-z。如果你看到2或3个字符,你会想到其中一个,其中一些是带有重音的奇怪的拉丁符号,它 几乎 总是意味着你的数据是UTF-8,但它是由拉丁语-1呈现的。 例外是当它被输入为utf-8和系统时 预期 首先是拉丁语-1。确保HTML表单显式设置字符类型。 一般来说,我建议您让所有基于Web的工具都使用“utf-8”,而没有一个非常好的理由不使用它。 更新: 这有点恶心,但我建议您不要太担心数据库字符集。实际上,我们应该默认为utf-8,但是如果您将utf-8数据放入拉丁-1表中,那么返回的结果仍然是utf-8,只要没有任何问题询问数据库它认为发送给您什么。我要说的是,MySQL不太可能导致这个问题。它要么是剪切粘贴,要么是浏览器,要么是Web表单,要么是从表单中读取并写入数据库的代码,要么是从数据库中读取并呈现HTML的代码。 尝试使用iffy字符检查页面的字符编码。尝试将其设置为utf-8或在浏览器中强制使用utf-8。在Firefox中查看字符编码。 |
|
|
2
1
他们正在向您的数据库发送utf8字符串,您的数据库可能需要拉丁文。首先确保您的表设置为utf8,如果它没有设置为utf8。然后尝试在执行任何其他操作之前运行此查询:
这会将连接的字符集设置为utf8。然后您可以运行其他查询。 读下面这个: http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html |
|
|
3
0
在阅读了你的帖子之后,我唯一能告诉你的就是检查你的表单标签,并将“accept charset”属性添加到你想要的值中。 由于这是一个问题,您与从表单发布的数据,那么您可能想要检查它。 如果在数据库表中存储数据后出现此问题,则可能需要检查数据库表字符串排序/字符集。 |