如果數據庫使用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