如果数据库使用UTF-8编码,是否可以正确存储和检索所有人类语言的文本?
在PostgreSQL数据库中处理非英语语言时是否有“陷阱”?
使用Ruby on Rails和PostgreSQL 9.1。
答案 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编码文本。