在mysql数据库中存储瑞典字符

时间:2013-03-24 14:00:55

标签: mysql utf-8 collation

我在MySQL数据库中存储瑞典字符时遇到问题。我想将它们存储在名为users的表中,并使用排序规则utf8-bin。即使我使用utf8,字符å ä ö也会存储为Ã¥ ä ö,我不知道为什么。检索数据并回显它会给我相同的输出,而不是å ä ö。任何帮助表示赞赏。

4 个答案:

答案 0 :(得分:7)

呼叫

mysql_set_charset("utf8");

连接后和进行任何查询之前。

您的数据库字符集仅用于存储,而不适用于应用和数据库之间的传输。

答案 1 :(得分:1)

有几个地方,你必须注意编码。

  • 数据库:你已经使用了utf8排序规则,所以很好
  • 数据库连接:如果您使用的是mysqli,请使用mysqli_set_charset设置连接的字符集。其他数据库驱动程序具有类似的功能。
  • 页面的输出编码:您可以使用HTTP标头或元标签。如果您想要安全起见,请同时指定。

答案 2 :(得分:0)

您应该确保数据库连接使用瑞典语编码,并且页面输出的编码也是正确的。不同的编码会导致许多这些问题。阅读有关字符编码的更多信息here.

答案 3 :(得分:0)

您需要在此处考虑几个参数。为此,现在和将来都能很好地运作。与文本的所有不同交互必须处于相同的编码中。甚至在db中(对于连接工作正常等)。

  1. 插入数据的编码(插入时设置在页眉和/或utf_8编码中)。

  2. db表中的编码,(我建议所有人使用utf8_swedish)

  3. 页面查看的编码结果来自db(在标题中设置)

  4. 编辑的页面编码。它可以以不同的编码打开文档。如果您不熟悉它,这是一个大问题。以正确的编码方式打开并保存文档。

  5. 有关连接编码的问题,设置正确,但今天它比几年前更小的问题,因为更改。

    一些笔记。你确定你的数据是这样存储的,或者只是出错了,例如phpmyademin?尝试使用print utf8_encode($ text)打印

    或者,utf8_decode()函数,可以为您提供一些见解......