3

如果数据库使用 UTF-8 编码,是否可以正确存储和检索所有人类语言的文本?

在 PostgreSQL 数据库中处理非英语语言时是否有任何“陷阱”?

使用 Ruby on Rails 和 PostgreSQL 9.1。

4

3 回答 3

4

除了 Spidey 和 Kevin 的观点(在客户端和ENCODING 'utf-8'数据库中使用 utf-8,请注意不同的排序规则),我强烈建议尽可能用它所在的语言标记每个文本字段。

如果您想使用全文搜索或任何类型的语言分析,了解每个字段使用哪种语言真的很有帮助。全文搜索不能进行词根分析等,除非它有字典和后缀列表被索引的文本 - 为此它需要了解语言。

存储ISO 639 语言代码可能是一个合理的选择。

于 2012-08-11T07:13:00.150 回答
3

不同的语言倾向于以不同的方式对相同的字符串进行排序,因此COLLATION在排序时要小心。

http://www.postgresql.org/docs/current/static/collat​​ion.html

于 2012-08-10T18:40:23.570 回答
2

UTF-8 可以编码所有 Unicode 代码点,所以是的,你根本不会有任何问题。不过,您需要使用 UTF-8 连接,并确保您的应用程序也将输出读取为 UTF-8 编码文本。

于 2012-08-10T16:59:15.687 回答