其實.NET的執行緒就跟SQL Server的資料表一樣有定序問題,所以排序結果會因為設定而有所不同,基本上執行緒的定序是跟著Server預設語系的。
在變更執行緒的語系之前,先看一下CultureInfo類別。
MSDN的說明是:提供有關特定文化特性 (Culture) 的資訊 (文化特性在 Unmanaged 程式碼開發中稱為「地區設定」(Locale))。 提供的資訊包括文化特性的名稱、書寫系統、使用的曆法,以及日期和排序字串的格式。
最後面那一句話,排序字串的格式。
了解了這個類別的用途,接著來看一下幾個語系排序的規則。
文化特性名稱
|
文化特性
|
預設的排序名稱和識別項
|
替代排序名稱和識別項
|
---|---|---|---|
zh-TW
|
中文 (台灣)
|
筆劃:0x00000404
|
注音符號:0x00030404
|
zh-CN
|
中文 (中華人民共和國)
|
發音:0x00000804
|
筆劃:0x00020804
|
ja-JP
|
日文 (日本)
|
預設:0x00000411
|
Unicode:0x00010411
|
知道各語系排序規則以後,接著我們只需要在排序前加上一個指定就搞定了。
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(language);
這樣是不是很簡單呢。(明明為了排序搞了很久)
參考:
CultureInfo與中文字串排序
CultureInfo 類別
這樣是不是很簡單呢。
參考:
CultureInfo與中文字串排序
CultureInfo 類別
沒有留言 :
張貼留言