共用方式為


裝置的當地語系化考量

更新:2007 年 11 月

.NET Compact Framework 不同於完整的 .NET Framework 之處,在提供當地語系化或全球化應用程式的資源方面,有其空間上的限制。這些資源包含排序資料表、日期格式轉換子 (Converter)、字串比較子 (Comparer) 和其他全球化公用程式。

開發人員應該判斷裝置上的作業系統,是否能夠適當地呈現其應用程式。由於全球化的需求和功能之故,針對個人電腦上完整的 .NET Framework 所撰寫之應用程式,與針對裝置上 .NET Compact Framework 所撰寫的應用程式之間會有所不同。

如果您建立 CultureInfo 的執行個體,表示 .NET Compact Framework 或裝置作業系統不支援的文化特性 (Culture),則 .NET Compact Framework 會傳回 ArgumentException

在盡可能的情況下,.NET Compact Framework 會使用原生作業系統呈現符合地區設定的內容,例如使用適當的字型。它也會依照裝置作業系統,進行文化特性上正確的字串比較和字元大小寫區分,例如當使用 CompareToUpperToLower 時。

目前文化特性的設定

您不能用程式設計的方式,在裝置上設定目前的文化特性。這些文化特性是透過裝置製造商或裝置使用者以手動進行設定,例如以使用執行 Windows CE 或 Windows CE .NET 之 Pocket PC 的 [地區設定] 而言,目前文化特性的設定是以個別裝置為基礎。

當應用程式啟動時,會使用裝置的地區設定。其值是由 CurrentCultureCurrentUICulture 屬性反映。這些屬性在 .NET Compact Framework 中是唯讀的。

如果裝置作業系統支援多語系使用者介面 (MUI),則 .NET Compact Framework 提供個別的 UI 語言設定,並且在 CurrentUICulture 中反映設定值。如果裝置不支援 MUI,CurrentUICulture 預設為 CurrentCulture

.NET Compact Framework 不支援 ThreadCurrentCultureCurrentUICulture 屬性,因為文化特性設定是以個別裝置 (而不是個別的執行緒) 為基礎。

裝置的當地語系化設計考量

當進行智慧型裝置應用程式當地語系化時,應該考慮下列的支援和行為。

  • 日曆

    .NET Compact Framework 僅支援西曆架構 (Gregorian-Based) 的日曆,並以西曆日曆做為預設值。希伯來或 Hijri 日曆並不支援。

  • 字串比較

    在某些情況中,因為裝置作業系統的差異性,字串的比較可能會與完整的 .NET Framework 有所不同。如果傳送的字串包含壓縮字元,則 CompareInfo 物件的 IndexOfLastIndexOfIsPrefixIsSuffix 可能會評估錯誤。

  • 使用者覆寫

    某些 .NET Compact Framework 從內部全球化資料表取得的預設值,與作業系統登錄設定所指定的預設值不同。例如,.NET Compact Framework 和完整的 .NET Framework 使用美式英文 (us-EN) 四位數年份,而 Windows CE .NET 則使用兩位數。.NET Compact Framework 預設值的順序優先於裝置作業系統之預設值。

    應用程式在其初始化期間會取得覆寫值,因此會忽略該時間後任何值的變更。

  • 編碼方式

    .NET Compact Framework 支援所有裝置上的字元編碼:Unicode (BE 和 LE)、UTF8、UTF7 和 ASCII。

    字碼頁編碼的支援是有限制的,並且僅發生在裝置的作業系統辨識出該編碼方式的情況下。

    如果裝置上無法使用所需的編碼方式,.NET Compact Framework 就會擲回 PlatformNotSupportedException

    如果裝置上具備選擇性元件 Mlang.dll,則會支援下列字碼頁:CP 51932 (EUC-JP)、CP 50220 (ISO2022JP) 和 CP 50221 (cslSO2022JP)。

  • 變更大小寫、Surrogate 字組

    .NET Compact Framework 使用原生的 Windows CE 函式變更字元的大小寫,不像 .NET Framework 內建這項功能。

    Windows CE 不支援變更 Surrogate 字組的大小寫,所以 .NET Compact Framework 不支援這項功能。

  • 排序

    .NET Compact Framework 使用原生 (Native) 的 Windows CE 函式執行排序作業,而不是 Managed 程式碼演算法。如果與該地區設定 (Locale) 的桌上型應用程式相比較,這種方式所產生的結果可能不同。

請參閱

其他資源

.NET Compact Framework 中的編碼和當地語系化