如果数据库使用UTF-8编码,可以正确存储和检索所有人类语言的文本吗?如何在PostgreSQL数据库中处理多种人类语言?
在PostgreSQL数据库中处理非英语语言时是否有任何“疑难杂症”?
使用Ruby on Rails和PostgreSQL 9.1。
如果数据库使用UTF-8编码,可以正确存储和检索所有人类语言的文本吗?如何在PostgreSQL数据库中处理多种人类语言?
在PostgreSQL数据库中处理非英语语言时是否有任何“疑难杂症”?
使用Ruby on Rails和PostgreSQL 9.1。
除了蜘蛛和凯文的点(使用UTF-8客户端和ENCODING 'utf-8'
数据库,谨防不同的排序规则),我强烈建议标记每个文本字段的语言是在如果在所有可能的。
如果您想要使用全文搜索或任何类型的语言分析,它确实有助于了解每个字段所在的语言。全文搜索无法进行根词分析等,除非它具有字典和后缀列表中的索引文本 - 因此它需要知道该语言。
存储ISO 639 language codes可能是一个合理的选择。
UTF-8可以编码所有的Unicode代码点,所以是的,你根本没有任何问题。尽管如此,您仍然需要使用UTF-8连接进行连接,并确保您的应用程序还将输出读取为UTF-8编码文本。
不同的语言倾向于以不同的方式排列相同的字符串,因此排序时请注意COLLATION
。
http://www.postgresql.org/docs/current/static/collation.html