全球化(3):編碼和字碼頁

來源:互聯網
上載者:User

      字碼頁是一個選定字元代碼的列表,字元表示為以某個特定的順序排列的碼位。字碼頁通常會定義為支援特定的語言或那些共用公用書寫系統的語言群組。所有的 Window 字碼頁只能包含 256 個碼位。大多數前 127 個碼位都表示相同的字元。這是為保證連續性和舊代碼預留的碼位。字碼頁在後面的 128 個碼位 128-255(以 0 為基數)有著顯著的不同。

      例如,字碼頁 1253 為希臘語書寫系統提供所需的字元代碼,而字碼頁 1250 為拉丁語書寫系統(包括英語、德語和法語)提供字元。後 128 個碼位中包含重音字元或希臘語字元。因此不能將希臘語和德語儲存在同一代碼流中,除非您放置某些類型的標識符來指明所引用的字碼頁。

      在處理亞洲字元集時情況更為複雜。由於中文、日語和韓語包含的字元超過 256 個,,因而需要開發一種不同的方案,但該方案必須以 256 個字元的字碼頁為基礎。因此 DBCS(雙位元組字元集)應運而生。每個亞洲字元都由一對碼位表示(因此為雙位元組)。為支援編程,將留出一組碼位表示該集的第一個位元組但不賦值(除非後面緊跟已定義的第二個位元組)。DBCS 意味著您必須編寫可將這些碼位對視為一個碼位的代碼,但這樣仍無法在同一資料流中組合日語和中文,因為在不同字碼頁中,相同的雙位元組碼位代表不同的語言中的不同字元。

      為了在同一資料流中儲存不同的語言,需要建立Unicode。該“字碼頁”可表示 64000 多個字元,現在由於引入了代理項,它可以表示 1,000,000,000 多個字元。Windows 2000 中使用了 Unicode 後可輕鬆地建立全球通用的代碼,因為您無需再擔心定址哪個字碼頁,也不必再擔心是否需要歸組字元碼位來表示一個字元。

     .NET Framework中的編碼

      .NET Framework 是一個用於構建、部署和運行 Web 服務及應用程式的平台,它提供了基於標準的高效多語言環境,可將現有或原有的投資與下一代應用程式和服務整合到一起。.NET Framework 用 Unicode UTF-16 表示字元,但在某些情況下其內部使用UTF-8。System.Text 命名空間提供可用於編碼和解碼字元的類,並包括含以下編碼的支援:

  • Unicode UTF-16 編碼。使用 UnicodeEncoding 類在字元與 UTF-16 編碼之間進行轉換。
  • Unicode UTF-8 編碼。使用 UTF8Encoding 類在字元與 UTF-8 編碼之間進行轉換。
  • ASCII 編碼。ASCII 將拉丁字母字元集編碼為 7 位字元。由於此編碼僅支援從 U+0000 到 U+007F 的字元值,因此大多數情況下不適用於國際化應用程式。當您需要與舊編碼和系統進行互動時,可以使用 ASCIIEncoding 類在字元和 ASCII 編碼之間進行轉換。
  • Windows/ISO 編碼。System.Text.Encoding 類提供對多種 Windows/ISO 編碼的支援。

     .NET Framework 支援使用字碼頁編碼的資料。您可以使用 Encoding.GetEncoding 方法 (Int32) 為指定的字碼頁建立目標編碼對象。將某個字碼頁數位指定為 Int32 參數。

      網頁中的編碼

     設定 Web 頁面的字元集或編碼一般有四種方法。

  • 使用此方法時,您可以從支援的字碼頁列表中進行選擇以建立您自己的 Web 內容。這種方法的弊端是您被限定於所選字元集所包括的語言,無法實現真正的多語言 Web 內容。您只能處理單一指令碼的 Web 頁面。
  • 數字實體可用於表示當前選定字碼頁或編碼範圍之外的一些符號。例如,假設您決定利用前一種方法和拉丁語 ISO 字元集 8859-1 建立一個 Web 頁面。現在您想在某個算式等式中顯示一些希臘語字元,但拉丁語字碼頁中並不包含希臘語字元。例如,選用希臘語字元 Φ(具有 Unicode 碼位 U+03A6)。在此碼位的十進位制數實體前放置 &#,則該字元的輸出如下:This is my text with a Greek Phi:Φ。而輸出為:This is my text with a Greek Phi:Φ。遺憾的是此方法無法編排大量文本,使編輯您的 Web 內容變得非常困難。
  • 在 Win32 應用程式中,UTF-16 是迄今為止最好的方法,但對於 Web 內容,只能在完全支援 Unicode 的 Windows NT 網路中安全使用 UTF-16。因此,對於那些不清楚是否有用戶端 網頁瀏覽器和網路 Unicode 支援的 網際網路網站,建議不使用此編碼。
  • 對於多語言 Web 頁面,Unicode 編碼是最好且最安全的方法。使用此方法可編碼整套 Unicode 字元。此外,Internet Explorer 4 和 Netscape 4 以後的所有版本都將支援此編碼,此功能不受網路或線路功能的限制。利用 UTF-8 編碼無需根據目標語言更改編碼即可建立多語言 Web 內容。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.