我需要将特殊字符和符号存储到mysql数据库中。所以要么我可以将它存储为'ü'或将其转换为html代码,例如'& uuml;'
我不确定哪个更好。
我也有像'♥','''这样的符号。
请建议哪一个更好?还建议是否有任何替代方法。
感谢。
答案 0 :(得分:5)
将数据原始保留在数据库中。在您需要HTML实体之前,请不要使用HTML实体。您永远不知道何时可能希望在其他地方使用您的数据,而不是在网页上。
答案 1 :(得分:5)
多年前引入了HTML实体,以便在传输不是二进制安全的情况下通过网络传输字符信息,以及用户代理(浏览器)不支持传输层或服务器的字符集编码的情况。 / p>
由于HTML实体仅包含非常基本的字符(&
,;
,a-z
和0-9
),并且这些字符在大多数字符集中具有相同的二进制编码,这是因为这些副作用而且非常安全。
但是,当您在数据库中存储某些内容时,您不会遇到这些问题,因为您通常处于控制状态,并且您知道将文本存储到数据库中的方式和方式。
例如,如果对数据库中的文本允许使用Unicode,则可以存储所有字符,实际上没有任何字符是特殊的。请注意,您需要在此处了解您的数据库,您可以遇到一些技术细节。就像您不知道数据库连接的字符集编码一样,因此您无法准确地告诉您的数据库要存储哪些文本。但通常,您只需存储文本并在以后检索它。没什么特别的。
实际上,当您使用HTML实体而不是普通字符时会有缺点:
ü
比LATIN-1,UTF-8,UTF-16或UTF-32中的ü
大得多。当你混合这两个概念时,真正的乐趣就开始了。你来到一个你真的不想进入的地方。所以不要这样做,因为你不需要它。
答案 2 :(得分:1)
我的建议会在将其保存到您的数据库时反映其他贡献者,不转换特殊实体。
反对转化的一些原因:
ü
,[word]+ü+[/word]
,您必须对ü
=>的html等效字符串进行字符串比较。 [word]+ü+[/word]
。