最近我在MySQL数据库中插入了一条包含俄语字母的记录,但是数据库无法正确显示它们。有什么方法可以让我的网站支持多种语言呢?
最近我在MySQL数据库中插入了一条包含俄语字母的记录,但是数据库无法正确显示它们。有什么方法可以让我的网站支持多种语言呢?
您应该查看utf8编码
请问您的数据库和表正在使用哪种编码?(可以发一下您的数据库结构吗?)
编辑:回答您在评论中提出的问题,utf8_general_ci更快,但不关心某些语言特定的比较。您可以在我在帖子中提交的链接中了解更多信息。实际上,它会影响排序和搜索的行为。
它确实很重要,您想让数据库如何运作,所有这些排序规则都在不同的环境中有用。在您的情况下,我不会使用utf8_bin,因为它只使用其二进制值来比较字符串。
虽然这是很久以前的事情了,但是帮助我的方法是在执行插入语句时使用utf8_decode($variable)。
例如,如果我echo查询语句,字符显示得很好,但是当查询被执行时,非ASCII字符会出现乱码,这毫无意义。使用utf8_decode($variable)后,问题得到解决。
选择nvarchar作为列类型也可能有所帮助。
示例查询:
$query = 'INSERT INTO table VALUES("'.utf8_decode($variable).'");';