数据库中的口音

时间:2016-01-15 12:15:35

标签: php html mysql htmlspecialchars

我正在用MySql创建一个数据库。我使用整理utf8。我使用的是欧洲语言,它有重音和特殊字符,如ç。

在包含或不包含特殊字符的情况下,在数据库中存储文本的最佳方法是什么?例如,我应该在数据库中使用différent还是diffdifférent(法语不同)? (这意味着,我应该在将文本存储到数据库之前或之后使用htmlspecialcharts进行转换?)

我尝试过,两种方式都运作良好。但是有任何理由可以出于任何技术原因更推荐选项,或者任何选项都可以。我现在想确定我是否开始使用数据库。后来改变会更难。

2 个答案:

答案 0 :(得分:4)

我认为你绝对应该用HTML实体替换你的角色:这是XML的标准,而不是一切!

例如,如果由于某种原因必须提供JSON,那么您将被迫对文本进行XML解码,然后将其作为JSON提供,其中UTF-8字符以不同的方式编码。

此外,转换字符会使你存储的字符串更不易被人类阅读(因此人类可搜索的程度较低):Le premier écoquartier d’Île-de-France a été inauguré会被编码成绝对恶魔的东西。

让你的MySQL完成艰苦的任务,处理非ASCII字符。

答案 1 :(得分:2)

这里有两个科目。

  1. 在由UTF-8驱动且需要US-ASCII以外的字符的应用程序中,将自己限制为7位US-ASCII是必要/有用的吗?这当然没有必要,我无法想象一个原因。就像将视频保存为未压缩的WAV一样。在大多数情况下,8位仍然存在。

  2. 将纯文本转换为HTML以存储它是否必要/有用?你显然不需要这样做,我想不出单一的好处,你强迫自己承担任何单一任务的伪造编码/解码的额外负担,例如:搜索。 HTML不是一切。