数据库中的口音

Accents in the database

我正在使用 MySql 创建数据库。我使用归类 utf8。我使用一种带有重音符号和特殊字符(如 ç)的欧洲语言。

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

我试过了,两种方式都很好用。但是,是否有任何理由使某个选项因任何技术原因而更受推荐,或者任何选项都可以。现在我想确定我是否启动了数据库。以后改起来就难了。

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

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

此外,转换字符会使您存储的字符串更少 human-readable(因此更少 human-searchable):Le premier écoquartier d’Île-de-France a été inauguré 将被编码成绝对邪恶的东西。

让您的 MySQL 完成艰苦的工作,照顾好 non-ASCII 个角色。

这里有两个科目。

  1. necessary/useful 是否要在由 UTF-8 驱动且需要 US-ASCII 之外的字符的应用程序中将自己限制为 7 位 US-ASCII?这当然没有必要,而且我想不出一个单一的理由。这就像将您的视频保存为未压缩的 WAV。在大多数情况下,这里保留 8 位。

  2. 是necessary/useful把你的纯文本转成HTML以便存储吗?你显然不需要这样做,我想不出任何好处,你强迫自己为任何单一任务承担额外的 encoding/decoding 负担,例如搜索。 HTML 不是一切。