我需要将特殊字符和符号存储到 mysql 数据库中。所以要么我可以像 'ü' 一样存储它,要么将它转换为 html 代码,例如 'ü'
我不确定哪个更好。
我也有像 '♥', '„' 这样的符号。
请问哪个更好?还建议是否有任何替代方法。
谢谢。
最佳答案
HTML 实体在多年前被引入以通过网络传输字符信息,当时传输不是二进制安全的,并且用户代理(浏览器)不支持传输层或服务器的字符集编码。
由于 HTML 实体仅包含非常基本的字符(&
、;
、a-z
和 0-9
) 并且这些字符在大多数字符集中具有相同的二进制编码,这对于那些副作用是非常安全的。
但是,当您将某些内容存储在数据库中时,您不会遇到这些问题,因为您通常处于控制之中,并且您知道可以将什么以及如何将文本存储到数据库中。
例如,如果数据库中的文本允许使用 Unicode,则可以存储所有字符,实际上没有一个是特殊的。请注意,您需要在此处了解您的数据库,您可能会遇到一些技术细节。就像您不知道数据库连接的字符集编码一样,因此您无法准确地告诉数据库您要在其中存储哪些文本。但通常,您只需存储文本并在以后检索它。没有什么特别需要处理的。
事实上,当您使用 HTML 实体而不是纯字符时存在缺点:
- HTML 实体占用更多空间:
ü
在 LATIN-1、UTF-8、UTF-16 或 UTF-32 中比ü
大得多。 - HTML 实体需要进一步处理。它们需要被创建,并且在读取时需要被解析。假设您需要在数据库中搜索特定文本,或者任何其他操作都需要额外处理。这只是开销。
当您混合使用这两个概念时,真正的乐趣就开始了。你来到了一个你真的不想进去的地方。所以不要这样做,因为您不需要它。
关于php - 在数据库中存储数据时是否需要使用 HTML 实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9299152/