安全地将HTML存储在数据库中而不影响字符编码

时间:2011-03-16 22:29:26

标签: php mysql character-encoding

我想获取一个字符串并将其存储在MYSQL数据库中。该字符串将是一个HTML字符串,它可以具有任何字符编码或以任何语言编写。

如何在不影响HTML字符串的情况下将其安全地保存在我的MYSQL数据库中,以便以后可以按原样检索它?

此外,它将存储的字段的数据类型为text,其归类为latin1_swedish_ci会影响它吗?

我目前正在这样做:

htmlentities($html, ENT_QUOTES, 'UTF-8')

但我不认为上述内容适用于所有字符集。我的意思是德国人或日本人如何受到影响?

感谢您的帮助。

4 个答案:

答案 0 :(得分:2)

为什么base64不对它进行编码存储,然后在?

之后对其进行解码

答案 1 :(得分:0)

您可以将其存储在BLOB字段中,MySQL永远不会尝试转换它。但这意味着您已经记住了保存字符串时使用的编码。

另一种选择是将字符串编码为base64。

答案 2 :(得分:0)

我不认为整理不会对值的存储产生影响。它只会影响比较(WHERE)和排序(ORDER BY)等行为。

恕我直言,确保您的数据不变的最安全的方法是将值存储为二进制。 Base64也可以。在任何一种情况下,您都必须在读取它时知道字符编码。

答案 3 :(得分:0)

有趣的是每个人都建议使用base64,我从没想过这样做。我知道我使用的很多CMS数据库只使用utf-8字符编码。这将支持您的德国和日本人物。 HTML不应该受到影响,只要HTML字符集也是utf-8,它就会在浏览器中呈现 字符集= UTF-8