允许MySQL数据库中的非ascii字符

时间:2011-11-26 19:51:41

标签: mysql sql database character-encoding ascii

最近有一条记录被插入到包含俄文字母的mysql数据库中。数据库无法正确显示它们。我可以做些什么来在我的网站上使用多种语言?

2 个答案:

答案 0 :(得分:2)

你应该看看utf8 encoding

您能否发布数据库和您的表格所使用的编码? (您可以发布数据库的结构吗?)

编辑:要在评论中回答你的问题,基本的区别是utf8_general_ci更快,但不关心某些特定语言的比较。您可以在我上面提交的链接中阅读更多相关内容。实际上它会影响排序和搜索的行为。

您希望数据库的行为方式很重要,所有这些排序规则在不同的环境中都很有用。在你的情况下,我不会使用utf8_bin,因为它只使用它的二进制值来比较字符串。

答案 1 :(得分:0)

这是很久以前的事了,但是在执行insert语句时,帮助我的是utf8_decode($ variable)。

例如,如果我回显查询它会显示字符就好了,但是当执行查询时,非ASCII字符出现乱码,这没有任何意义。在执行了utf8_decode($ variable)后,它运行了。

选择nvarchar作为列类型也可能有帮助

示例查询:

$query = 'INSERT INTO table VALUES("'.utf8_decode($variable).'");';