2011-09-26 67 views
3

我目前正在編寫一個web應用程序,需要對一組中文字符進行排序,我想知道中文字符是否按數據庫排序,如果是的話,它是如何排序的?數據庫如何對中文字符進行排序?

僅供參考,我將使用PostgreSQL。

回答

0

對它們進行排序的最簡單和最常見的方式就像二進制數據一樣,不管是作爲Unicode代碼點,還是作爲原始二進制數據(對於ASCII數據都能很好地工作)更簡單。不幸的是,這並沒有形成一個非常有意義的排序順序。它確實將事物分組在一起,所以像前綴查詢這樣的事情應該可以工作

對於有意義的排序順序,沒有好的算法解決方案。您需要使用查找表(例如,請參見this thread關於將中文映射到拼音,然後您可以對其進行排序)。

+0

嗯,這是一個問題...我來自香港,我們沒有標準化的廣東話拼音,也沒有人真正懂普通話拼音:\感謝您的方向,雖然 –

1

PostgreSQL使用操作系統區域設施對文本進行排序。這與操作系統工具(如sort)給您的行爲完全相同。因此,在初始化數據庫系統時,將您的語言環境設置爲有用的內容,例如zh_HK.utf8

如果你不喜歡這種結果,你將不得不自定義解決方案。

相關問題