在MySQL数据库中存储德语字符的问题.....?

时间:2011-06-28 09:37:14

标签: php mysql zend-framework

我有一个名为“cust_details”的表,其中有一列“ categories ”,我必须存储一些类别,如:blockadenlösung,affirmation,beziehungsprobleme lösen

但是当我试图将这些数据保存到数据库中时,它存储如下:

blockadenlüsung,肯定,beziehungsproblemelösen

变音符号出现在字符串中未以原始格式保存时。我尝试了一些 charset 来存储这些字符。但我仍面临问题 .....

可能的原因是什么......?

先谢谢.....

3 个答案:

答案 0 :(得分:3)

您存储的数据以UTF-8编码(“ö”代表UTF-8的典型值),但不显示为UTF-8,而是显示为ISO-8859-1等。

确保在任何地方使用相同的编码:

  • 使用内容编码“utf-8”
  • 发送您的网站
  • 使用mysql_query(“SET NAMES'utf8'”);将编码设置为utf-8
  • 确保数据库的编码为UTF-8(使用HeidiSQL等进行检查)

答案 1 :(得分:0)

插入字符时使用此选项:

N'characters here'

字符串声明前的N应该允许您将其输入到数据库中。

答案 2 :(得分:0)

该领域的类型是什么?

您可以指定数据库/表/字段级字符集。默认latin-1适用于大多数情况。

否则,您必须使用纯文本并将&#<4-digit-unicode-value>;之类的unicode字符串存储到其中。然后当你打印出来时,只需将unicode转储到HTML中,它就会显示出来。

以下是Pashto &#1578;&#1585;&#1575;&#1601;&#1610;&#1705;&#1610; &#1662;&#1610;&#1690;&#1608; &#1705;&#1744; &#1583;&#1585;&#1744; &#1578;&#1606;&#1607; &#1605;&#1683;&#1607; &#1575;&#1608; &#1669;&#1608;&#1575;&#1585;&#1604;&#1587; &#1606;&#1608;&#1585; &#1660;&#1662;&#1610;&#1575;&#1606; &#1588;&#1608;&#1604;.中的示例字符串,我们将其直接存储到表中。使用的字符集是latin_charset_ci

祝你好运!