数据库中的重音符号


Accents in the database

我正在使用MySql创建一个数据库。我使用排序规则 utf8。我使用具有重音和特殊字符(如ç)的欧洲语言。

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

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

我认为你绝对不应该用HTML实体替换你的字符:这是XML的标准,而不是所有的标准!

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

此外,转换字符会使您存储的字符串的人类可读性大大降低(因此人类搜索性降低):Le premier écoquartier d’Île-de-France a été inauguré将被编码为绝对恶魔般的东西。

让您的MySQL完成艰巨的工作,处理非ASCII字符。

这里有两个主题。

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

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