如何在PostgreSQL数据库中处理多种人类语言?

时间:2012-08-10 16:54:08

标签: postgresql utf-8 character-encoding

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

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

使用Ruby on Rails和PostgreSQL 9.1。

3 个答案:

答案 0 :(得分:4)

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

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

存储ISO 639 language codes可能是一个合理的选择。

答案 1 :(得分:3)

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

http://www.postgresql.org/docs/current/static/collation.html

答案 2 :(得分:2)

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