共用方式為


補充字元

更新: 2006 年 12 月 12 日

SQL Server 2005 使用 UCS-2 編碼配置,以二進位格式來編碼 Unicode 字元。有些語言 (例如中文) 則會定義其他不常使用且未包含在 Unicode 標準中的字元。UCS-2 會將這些字元 (補充字元) 儲存為兩個未定義的 Unicode 字元,當它們成對出現時,便能在儲存時定義補充字元。SQL Server 以此方式儲存補充字元,不會有遺失或損毀的風險。此外,在 SQL Server 2005 中,您也可以在任何以 SQL Server 為基礎的應用程式中使用並顯示補充字元,包括工具型應用程式,例如 Business Intelligence。

當您使用 Windows Vista 或 Microsoft Office 2007 的 Microsoft IME (輸入法) 時,補充字元會以 UCS 字碼指標 U+10000 或更高的指標來代表。

使用補充字元時,請考慮下列限制:

  • 補充字元只能用在 90 定序版本的排序及比較作業。這些比較作業只依據字碼指標,而不會依據其他在語言方面有意義的方式進行。當您在 ORDER BY、GROUP BY 以及 DISTINCT 作業中使用補充字元時請特別注意這一點,尤其當同一項作業中同時含有補充字元及非補充字元時,更要留意。90 定序版本是指在名稱後面加上 90 後置詞。例如,不使用日文定序,改用 Japanese_90。如需詳細資訊,請參閱<安裝程式中的定序設定>。
  • 因為補充字元會成對儲存為兩個雙位元組字元,所以 LEN() 函數會對引數字串內含的每一個補充字元傳回值 2。同樣地,函數 CHARINDEX 及 PATINDEX 無法正確地表示字元字串內出現的補充字元,而 NCHAR 函數只會傳回一個字元,只表示了補充字元組的一半。將 binaryvarbinary 值轉換為補充字元,也只會產生補充字元組的一半。
  • LEFT、RIGHT、SUBSTRING、STUFF 以及 REVERSE 函數會將補充字元組拆開,造成無法預期的結果。
  • 不支援補充字元與底線 (_)、空格 ( ) 以及插入號 (^) 萬用字元搭配使用。
  • 不支援在中繼資料使用補充字元,例如資料庫物件的名稱。
  • 因為其獨特的儲存機制,所以在伺服器及資料庫升級作業期間,如果出現補充字元可能會消耗多餘的資源。

SQL Server 2005 提供一個範例,顯示 Common Language Runtime (CLR) 函數內能夠識別補充字元的字串處理。如需詳細資訊,請參閱<增補感知的字串操作>。

請參閱

概念

使用特殊字元編碼

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 12 月 12 日

新增內容:
  • 釐清如何判斷字元是否為補充字元。