表示字元編碼方式。web
名稱 | 說明 | |
---|---|---|
![]() ![]() ![]() ![]() |
Encoding() | 初始化 Encoding 類別的新執行個體。 |
![]() ![]() |
Encoding(Int32) | 初始化對應到指定字碼頁之 Encoding 類別的新執行個體。 |
名稱 | 說明 | |
---|---|---|
![]() ![]() ![]() |
ASCII | 取得 ASCII (7 位元) 字元集 (Character Set) 的編碼方式。 |
![]() ![]() ![]() ![]() ![]() |
BigEndianUnicode | 取得 UTF-16 格式的編碼方式,其使用由大到小的位元組順序。 |
![]() |
BodyName | 在衍生類別中覆寫時,取得能夠與郵件代理程式主體標籤一塊兒使用的目前編碼方式名稱。 |
![]() ![]() |
CodePage | 在衍生類別中覆寫時,取得目前 Encoding 的字碼頁識別項。 |
![]() |
DecoderFallback | 取得或設定目前 Encoding 物件的 DecoderFallback 物件。 |
![]() ![]() ![]() |
Default | 取得做業系統目前 ANSI 字碼頁的編碼方式。 |
![]() |
EncoderFallback | 取得或設定目前 Encoding 物件的 EncoderFallback 物件。 |
![]() |
EncodingName | 在衍生類別中覆寫時,取得目前編碼方式的人們可讀取 (Human-Readable) 的描述。 |
![]() |
HeaderName | 在衍生類別中覆寫時,取得能夠與郵件代理程式標頭標籤一塊兒使用的目前編碼方式名稱。 |
![]() |
IsBrowserDisplay | 在衍生類別中覆寫時,取得值,指出瀏覽器用戶端是否可使用目前的編碼方式來顯示內容。 |
![]() |
IsBrowserSave | 在衍生類別中覆寫時,取得值,指出瀏覽器用戶端是否可使用目前的編碼方式來儲存內容。 |
![]() |
IsMailNewsDisplay | 在衍生類別中覆寫時,取得值,指出郵件和新聞用戶端是否可使用目前的編碼方式來顯示內容。 |
![]() |
IsMailNewsSave | 在衍生類別中覆寫時,取得值,指出郵件和新聞用戶端是否可使用目前的編碼方式來儲存內容。 |
![]() |
IsReadOnly | 在衍生類別中覆寫時,取得值,指出目前的編碼方式是否為惟讀。 |
![]() |
IsSingleByte | 在衍生類別中覆寫時,取得值,指出目前的編碼方式是否使用單一位元組字碼指標。 |
![]() ![]() ![]() ![]() ![]() |
Unicode | 以位元組由小到大位元組順序取得 UTF-16 格式的編碼方式。 |
![]() ![]() |
UTF32 | 以位元組由小到大位元組順序取得 UTF-32 格式的編碼方式。 |
![]() ![]() ![]() |
UTF7 | 取得 UTF-7 格式的編碼方式。 |
![]() ![]() ![]() ![]() ![]() |
UTF8 | 取得 UTF-8 格式的編碼方式。 |
![]() ![]() ![]() ![]() |
WebName | 在衍生類別中覆寫時,若要取得目前的編碼方式,請取得向 Internet Assigned Numbers Authority (IANA) 註冊的名稱。 |
![]() |
WindowsCodePage | 在衍生類別中覆寫時,請取得最能符合目前編碼方式的 Windows 做業系統字碼頁。 |
名稱 | 說明 | |
---|---|---|
![]() ![]() |
Clone | 在衍生類別中覆寫時,會創建目前 Encoding 物件的淺層複本。 |
![]() ![]() ![]() ![]() ![]() |
Convert(Encoding, Encoding, Byte[]) | 將整個位元組陣列從一種編碼方式轉換成另外一種編碼方式。 |
![]() ![]() ![]() ![]() ![]() |
Convert(Encoding, Encoding, Byte[], Int32, Int32) | 將位元組陣列中的某一位元組範圍由一種編碼方式轉換成另外一種編碼方式。 |
![]() ![]() ![]() ![]() |
Equals | 判斷指定的 Object 和目前的執行個體是否相等。 (覆寫Object.Equals(Object)。) |
![]() ![]() ![]() ![]() |
Finalize | 允許物件在記憶體回收進行回收以前,嘗試釋放資源並執行其餘清除做業。 (繼承自 Object)。 |
![]() ![]() ![]() ![]() |
GetByteCount(Char[]) | 在衍生類別中覆寫時,計算編碼指定字元陣列中全部字元所產生的位元組數目。 |
![]() ![]() ![]() ![]() |
GetByteCount(String) | 在衍生類別中覆寫時,計算編碼指定的字串字元所產生的位元組數目。 |
![]() ![]() |
GetByteCount(Char*, Int32) | 在衍生類別中覆寫時,計算從指定的字元指標開始,編碼一組字元所產生的位元組數目。 |
![]() ![]() ![]() ![]() |
GetByteCount(Char[], Int32, Int32) | 在衍生類別中覆寫時,計算從指定的字元陣列編碼一組字元所產生的位元組數目。 |
![]() ![]() ![]() ![]() |
GetBytes(Char[]) | 在衍生類別中覆寫時,將指定字元陣列中的全部字元編碼成位元組序列。 |
![]() ![]() ![]() ![]() |
GetBytes(String) | 在衍生類別中覆寫時,將指定字串中的全部字元編碼成位元組序列。 |
![]() ![]() ![]() ![]() |
GetBytes(Char[], Int32, Int32) | 在衍生類別中覆寫時,將指定字元陣列中的一組字元編碼成位元組序列。 |
![]() ![]() |
GetBytes(Char*, Int32, Byte*, Int32) | 在衍生類別中覆寫時,從指定字元指標開始將一組字元編碼成位元組序列 (會從指定的位元組指標開始存放這些位元組)。 |
![]() ![]() ![]() ![]() |
GetBytes(Char[], Int32, Int32, Byte[], Int32) | 在衍生類別中覆寫時,將指定字元陣列中的一組字元編碼成指定的位元組陣列。 |
![]() ![]() ![]() ![]() |
GetBytes(String, Int32, Int32, Byte[], Int32) | 在衍生類別中覆寫時,將指定字串中的一組字元編碼成指定的位元組陣列。 |
![]() ![]() ![]() ![]() |
GetCharCount(Byte[]) | 在衍生類別中覆寫時,計算解碼指定位元組陣列中全部位元組所產生的字元數目。 |
![]() ![]() |
GetCharCount(Byte*, Int32) | 在衍生類別中覆寫時,計算從指定的位元組指標開始,解碼位元組序列所產生的字元數目。 |
![]() ![]() ![]() ![]() |
GetCharCount(Byte[], Int32, Int32) | 在衍生類別中覆寫時,計算從指定的位元組陣列解碼位元組序列所產生的字元數目。 |
![]() ![]() ![]() ![]() |
GetChars(Byte[]) | 在衍生類別中覆寫時,將指定位元組陣列中的全部位元組解碼成一組字元。 |
![]() ![]() ![]() ![]() |
GetChars(Byte[], Int32, Int32) | 在衍生類別中覆寫時,將指定位元組陣列中的位元組序列解碼成一組字元。 |
![]() ![]() |
GetChars(Byte*, Int32, Char*, Int32) | 在衍生類別中覆寫時,從指定位元組指標開始將位元組序列解碼成一組字元 (會從指定的字元指標開始存放這些字元)。 |
![]() ![]() ![]() ![]() |
GetChars(Byte[], Int32, Int32, Char[], Int32) | 在衍生類別中覆寫時,將指定位元組陣列中的位元組序列解碼成指定的字元陣列。 |
![]() ![]() ![]() ![]() |
GetDecoder | 在衍生類別中覆寫時,取得會將編碼的位元組序列轉換成字元序列的解碼器。 |
![]() ![]() ![]() ![]() |
GetEncoder | 在衍生類別中覆寫時,取得會將 Unicode 字元序列轉換成編碼的位元組序列的編碼器。 |
![]() ![]() ![]() |
GetEncoding(Int32) | 傳回與指定字碼頁識別項相關聯的編碼方式。 |
![]() ![]() ![]() ![]() ![]() |
GetEncoding(String) | 傳回與指定字碼頁名稱相關聯的編碼方式。 |
![]() ![]() |
GetEncoding(Int32, EncoderFallback, DecoderFallback) | 傳回與指定字碼頁識別項相關聯的編碼方式。 參數會針對無法編碼的字元以及無法解碼的位元組序列指定錯誤處理常式。 |
![]() ![]() |
GetEncoding(String, EncoderFallback, DecoderFallback) | 傳回與指定字碼頁名稱相關聯的編碼方式。 參數會針對無法編碼的字元以及無法解碼的位元組序列指定錯誤處理常式。 |
![]() ![]() |
GetEncodings | 傳回包含全部編碼方式的陣列。 |
![]() ![]() ![]() ![]() |
GetHashCode | 傳回目前執行個體的雜湊程式碼。 (覆寫 Object.GetHashCode()。) |
![]() ![]() ![]() ![]() |
GetMaxByteCount | 在衍生類別中覆寫時,計算編碼指定的字元數所產生的最大位元組數目。 |
![]() ![]() ![]() ![]() |
GetMaxCharCount | 在衍生類別中覆寫時,計算解碼指定的位元組數目所產生的最大字元數目。 |
![]() ![]() ![]() ![]() |
GetPreamble | 在衍生類別中覆寫時,傳回可指定所用編碼方式的位元組序列。 |
![]() |
GetString(Byte[]) | 在衍生類別中覆寫時,將指定位元組陣列中的全部位元組解碼成字串。 |
![]() ![]() ![]() ![]() |
GetString(Byte[], Int32, Int32) | 在衍生類別中覆寫時,將指定位元組陣列中的位元組序列解碼成字串。 |
![]() ![]() ![]() ![]() |
GetType | 取得目前執行個體的 Type。 (繼承自 Object)。 |
![]() |
IsAlwaysNormalized() | 取得值,指出目前的編碼方式是否永遠都是使用預設的正規化表單進行正規化。 |
![]() |
IsAlwaysNormalized(NormalizationForm) | 在衍生類別中覆寫時取得值,指出目前的編碼方式是否永遠都是使用指定的正規化表單進行正規化。 |
![]() ![]() ![]() ![]() |
MemberwiseClone | 創建目前 Object 的淺層複本 (Shallow Copy)。 (繼承自 Object)。 |
![]() ![]() ![]() ![]() |
ToString | 傳回表示目前物件的字串。 (繼承自 Object)。 |
編碼是將一組 Unicode 字元轉換成位元組序列的處理程序。 相反地,解碼則是將已編碼的位元組序列轉換成一組 Unicode 字元的處理程序。 如需 Unicode Transformation Format (UTF) 和Encoding 所支援之其餘編碼的詳細資訊,請參閱.NET Framework 中的字元編碼方式。windows
請注意,Encoding 主要是處理 Unicode 字元,而不是任意的二進位資料,例如位元組陣列。若是您的應用程式必須將任意二進位資料編碼成文字,應該使用諸如 uuencode 的通訊協定;該通訊協定是由 Convert.ToBase64CharArray 之類的方法所實做。api
.NET Framework 提供下列 Encoding 類別實做來支援目前的 Unicode 編碼方式和其餘編碼方式:app
-
ASCIIEncoding 可編碼 Unicode 字元成單一 7 位元 ASCII 字元。 這種編碼方式只支援 U+0000 和 U+007F 之間的字元值。 字碼頁 20127。 也可透過 ASCII 屬性取得。less
-
UTF7Encoding 會使用 UTF-7 編碼方式為 Unicode 字元編碼。 這種編碼方式支援全部的 Unicode 字元值。 字碼頁 65000。 也可透過 UTF7 屬性取得。ide
-
UTF8Encoding 會使用 UTF-8 編碼方式為 Unicode 字元編碼。 這種編碼方式支援全部的 Unicode 字元值。 字碼頁 65001。 也可透過 UTF8 屬性取得。ui
-
UnicodeEncoding 會使用 UTF-16 編碼方式為 Unicode 字元編碼。 同時支援由小到大和由大到小的位元組順序。 也可透過 Unicode 屬性和 BigEndianUnicode 屬性取得。this
-
UTF32Encoding 會使用 UTF-32 編碼方式為 Unicode 字元編碼。 同時支援位元組由小到大 (字碼頁 12000) 和位元組由大到小 (字碼頁 12001) 的位元組順序。 也可透過 UTF32 屬性取得。spa
Encoding 類別主要用於在不一樣的編碼與 Unicode 之間轉換。 一般,一個衍生的 Unicode 類別就是適合應用程式的正確選擇。3d
您的應用程式會使用 GetEncoding 方法取得其餘編碼方式。 它們應該會使用 GetEncodings 方法取得全部編碼方式的清單。
下表列出支援的編碼方式和其關聯的字碼頁。 最後一欄中的星號指示 .NET Framework 本來就支援此字碼頁 (不論基礎平臺為何)。
字碼頁 |
名稱 |
顯示名稱 |
|
---|---|---|---|
37 |
IBM037 |
IBM EBCDIC (美國-加拿大) |
|
437 |
IBM437 |
OEM 美國 |
|
500 |
IBM500 |
IBM EBCDIC (國際) |
|
708 |
ASMO-708 |
阿拉伯文 (ASMO 708) |
|
720 |
DOS-720 |
阿拉伯文 (DOS) |
|
737 |
ibm737 |
希臘文 (DOS) |
|
775 |
ibm775 |
波羅的海文 (DOS) |
|
850 |
ibm850 |
西歐語系 (DOS) |
|
852 |
ibm852 |
中歐語系 (DOS) |
|
855 |
IBM855 |
OEM 斯拉夫文 |
|
857 |
ibm857 |
土耳其文 (DOS) |
|
858 |
IBM00858 |
OEM 多語系拉丁文 I |
|
860 |
IBM860 |
葡萄牙文 (DOS) |
|
861 |
ibm861 |
冰島文 (DOS) |
|
862 |
DOS-862 |
希伯來文 (DOS) |
|
863 |
IBM863 |
加拿大法文 (DOS) |
|
864 |
IBM864 |
阿拉伯文 (864) |
|
865 |
IBM865 |
北歐字母 (DOS) |
|
866 |
cp866 |
斯拉夫文 (DOS) |
|
869 |
ibm869 |
希臘文,現代 (DOS) |
|
870 |
IBM870 |
IBM EBCDIC (多語系拉丁文 2) |
|
874 |
windows-874 |
泰文 (Windows) |
|
875 |
cp875 |
IBM EBCDIC (希臘文現代) |
|
932 |
shift_jis |
日文 (Shift-JIS) |
|
936 |
gb2312 |
簡體中文 (GB2312) |
* |
949 |
ks_c_5601-1987 |
韓文 |
|
950 |
big5 |
繁體中文 (Big5) |
|
1026 |
IBM1026 |
IBM EBCDIC (土耳其拉丁文 5) |
|
1047 |
IBM01047 |
IBM 拉丁文 1 |
|
1140 |
IBM01140 |
IBM EBCDIC (美國-加拿大-歐洲) |
|
1141 |
IBM01141 |
IBM EBCDIC (德國-歐洲) |
|
1142 |
IBM01142 |
IBM EBCDIC (丹麥-挪威-歐洲) |
|
1143 |
IBM01143 |
IBM EBCDIC (芬蘭-瑞典-歐洲) |
|
1144 |
IBM01144 |
IBM EBCDIC (義大利-歐洲) |
|
1145 |
IBM01145 |
IBM EBCDIC (西班牙-歐洲) |
|
1146 |
IBM01146 |
IBM EBCDIC (英國-歐洲) |
|
1147 |
IBM01147 |
IBM EBCDIC (法國-歐洲) |
|
1148 |
IBM01148 |
IBM EBCDIC (國際-歐洲) |
|
1149 |
IBM01149 |
IBM EBCDIC (冰島文-歐洲) |
|
1200 |
utf-16 |
Unicode |
* |
1201 |
unicodeFFFE |
Unicode (位元組由大到小) |
* |
1250 |
windows-1250 |
中歐語系 (Windows) |
|
1251 |
windows-1251 |
斯拉夫文 (Windows) |
|
1252 |
Windows-1252 |
西歐語系 (Windows) |
* |
1253 |
windows-1253 |
希臘文 (Windows) |
|
1254 |
windows-1254 |
土耳其文 (Windows) |
|
1255 |
windows-1255 |
希伯來文 (Windows) |
|
1256 |
windows-1256 |
阿拉伯文 (Windows) |
|
1257 |
windows-1257 |
波羅的海文 (Windows) |
|
1258 |
windows-1258 |
越南文 (Windows) |
|
1361 |
韓文 |
韓文 (Johab) |
|
10000 |
Macintosh |
西歐語系 (Mac) |
|
10001 |
x-mac-japanese |
日文 (Mac) |
|
10002 |
x-mac-chinesetrad |
繁體中文 (Mac) |
|
10003 |
x-mac-korean |
韓文 (Mac) |
* |
10004 |
x-mac-arabic |
阿拉伯文 (Mac) |
|
10005 |
x-mac-hebrew |
希伯來文 (Mac) |
|
10006 |
x-mac-greek |
希臘文 (Mac) |
|
10007 |
x-mac-cyrillic |
斯拉夫文 (Mac) |
|
10008 |
x-mac-chinesesimp |
簡體中文 (Mac) |
* |
10010 |
x-mac-romanian |
羅馬尼亞文 (Mac) |
|
10017 |
x-mac-ukrainian |
烏克蘭文 (Mac) |
|
10021 |
x-mac-thai |
泰文 (Mac) |
|
10029 |
x-mac-ce |
中歐語系 (Mac) |
|
10079 |
x-mac-icelandic |
冰島文 (Mac) |
|
10081 |
x-mac-turkish |
土耳其文 (Mac) |
|
10082 |
x-mac-croatian |
克羅埃西亞文 (Mac) |
|
12000 |
utf-32 |
Unicode (UTF-32) |
* |
12001 |
utf-32BE |
Unicode (UTF-32 位元組由大到小) |
* |
20000 |
x-Chinese-CNS |
繁體中文 (CNS) |
|
20001 |
x-cp20001 |
TCA 臺灣 |
|
20002 |
x-Chinese-Eten |
繁體中文 (倚天) |
|
20003 |
x-cp20003 |
IBM5550 臺灣 |
|
20004 |
x-cp20004 |
TeleText 臺灣 |
|
20005 |
x-cp20005 |
Wang 臺灣 |
|
20105 |
x-IA5 |
西歐語系 (IA5) |
|
20106 |
x-IA5-German |
德文 (IA5) |
|
20107 |
x-IA5-Swedish |
瑞典文 (IA5) |
|
20108 |
x-IA5-Norwegian |
挪威文 (IA5) |
|
20127 |
us-ascii |
US-ASCII |
* |
20261 |
x-cp20261 |
T.61 |
|
20269 |
x-cp20269 |
ISO-6937 |
|
20273 |
IBM273 |
IBM EBCDIC (德國) |
|
20277 |
IBM277 |
IBM EBCDIC (丹麥-挪威) |
|
20278 |
IBM278 |
IBM EBCDIC (芬蘭-瑞典) |
|
20280 |
IBM280 |
IBM EBCDIC (義大利) |
|
20284 |
IBM284 |
IBM EBCDIC (西班牙) |
|
20285 |
IBM285 |
IBM EBCDIC (英國) |
|
20290 |
IBM290 |
IBM EBCDIC (日文片假名) |
|
20297 |
IBM297 |
IBM EBCDIC (法國) |
|
20420 |
IBM420 |
IBM EBCDIC (阿拉伯文) |
|
20423 |
IBM423 |
IBM EBCDIC (希臘文) |
|
20424 |
IBM424 |
IBM EBCDIC (希伯來文) |
|
20833 |
x-EBCDIC-KoreanExtended |
IBM EBCDIC (韓文擴充) |
|
20838 |
IBM-Thai |
IBM EBCDIC (泰文) |
|
20866 |
koi8 r |
斯拉夫文 (KOI8-R) |
|
20871 |
IBM871 |
IBM EBCDIC (冰島文) |
|
20880 |
IBM880 |
IBM EBCDIC (斯拉夫俄文) |
|
20905 |
IBM905 |
IBM EBCDIC (土耳其文) |
|
20924 |
IBM00924 |
IBM 拉丁文 1 |
|
20932 |
EUC-JP |
日文 (JIS 0208-1990 和 0212-1990) |
|
20936 |
x-cp20936 |
簡體中文 (GB2312-80) |
* |
20949 |
x-cp20949 |
韓文 Wansung |
* |
21025 |
cp1025 |
IBM EBCDIC (斯拉夫塞爾維亞文-保加利亞文) |
|
21866 |
koi8-u |
斯拉夫文 (KOI8-U) |
|
28591 |
iso-8859-1 |
西歐語系 (ISO) |
* |
28592 |
iso-8859-2 |
中歐語系 (ISO) |
|
28593 |
iso-8859-3 |
拉丁文 3 (ISO) |
|
28594 |
iso-8859-4 |
波羅的海文 (ISO) |
|
28595 |
iso-8859-5 |
斯拉夫文 (ISO) |
|
28596 |
iso-8859-6 |
阿拉伯文 (ISO) |
|
28597 |
iso-8859-7 |
希臘文 (ISO) |
|
28598 |
iso-8859-8 |
希伯來文 (ISO-Visual) |
* |
28599 |
iso-8859-9 |
土耳其文 (ISO) |
|
28603 |
iso-8859-13 |
愛沙尼亞文 (ISO) |
|
28605 |
iso-8859-15 |
拉丁文 9 (ISO) |
|
29001 |
x-Europa |
歐洲 |
|
38598 |
iso-8859-8-i |
希伯來文 (ISO-Logical) |
* |
50220 |
iso 2022 jp |
日文 (JIS) |
* |
50221 |
csISO2022JP |
日文 (JIS-允許 1 位元組片假名) |
* |
50222 |
iso 2022 jp |
日文 (JIS-允許 1 位元組片假名 - SO/SI) |
* |
50225 |
iso 2022 kr |
韓文 (ISO) |
* |
50227 |
x-cp50227 |
簡體中文 (ISO-2022) |
* |
51932 |
euc-jp |
日文 (EUC) |
* |
51936 |
EUC-CN |
簡體中文 (EUC) |
* |
51949 |
euc-kr |
韓文 (EUC) |
* |
52936 |
hz-gb-2312 |
簡體中文 (HZ) |
* |
54936 |
GB18030 |
簡體中文 (GB18030) |
* |
57002 |
x-iscii-de |
ISCII 梵文語系 |
* |
57003 |
x-iscii-be |
ISCII 孟加拉文 |
* |
57004 |
x-iscii-ta |
ISCII 坦米爾文 |
* |
57005 |
x-iscii-te |
ISCII 特拉古文 |
* |
57006 |
x-iscii-as |
ISCII 阿薩姆文 |
* |
57007 |
x-iscii-or |
ISCII 歐利亞文 |
* |
57008 |
x-iscii-ka |
ISCII 坎那達文 |
* |
57009 |
x-iscii-ma |
ISCII 馬來亞拉姆文 |
* |
57010 |
x-iscii-gu |
ISCII 古吉拉特文 |
* |
57011 |
x-iscii-pa |
ISCII 旁遮普語 |
* |
65000 |
utf-7 |
Unicode (UTF-7) |
* |
65001 |
utf-8 |
Unicode (UTF-8) |
* |
若是要轉換的資料只能夠從循序區塊取得 (例如從資料流讀取的資料) 時,或資料量太大而必須分紅較小區塊時,您的應用程式應該使用衍生類別 (Derived Class) 的 GetDecoder 方法或GetEncoder 方法提供的 Decoder 或 Encoder。
UTF-16 和 UTF-32 編碼器可使用位元組由大到小的位元組順序 (最大顯著性位元組在前) 或位元組由小到大的位元組順序 (最小顯著性位元組在前)。 例如,拉丁大寫字母 A (U+0041) 會序列化以下 (使用十六進位):
-
UTF-16 位元組由大到小的位元組順序:00 41
-
UTF-16 位元組由小到大的位元組順序:41 00
-
UTF-32 位元組由大到小的位元組順序:00 00 00 41
-
UTF-32 位元組由小到大的位元組順序:41 00 00 00
使用原生的位元組順序來儲存 Unicode 字元,一般會更有效率。 例如,在位元組由小到大的平臺 (如 Intel 電腦) 上,最好使用位元組由小到大位元組順序。
GetPreamble 方法會擷取包含位元組順序標記 (BOM) 的位元組陣列。 若是此位元組陣列有前置編碼的資料流,將有助於解碼器識別所用的編碼格式。
如需位元組順序和位元組順序標記的詳細資訊,請參閱如下網頁中的 Unicode 標準:Unicode Home Page。
請注意,編碼類別可讓錯誤:
-
以無訊息模式變更為 "?" 字元。
-
使用「自動調整」字元。
-
透過使用 EncoderFallback 和 DecoderFallback 類別並搭配 U+FFFD Unicode 取代字元,變更為應用程式的特定行為。
建議您的應用程式在全部資料流錯誤上擲回例外狀況。 應用程式會在適當時使用 "throwonerror" 旗標,或使用 EncoderExceptionFallback 和 DecoderExceptionFallback 類別。一般不建議使用自動調整後援,因為這常會導致資料遺失或混淆,並且速度比簡單的字元取代更慢。 若是是 ANSI 編碼,則自動調整行為是預設值。
下列範例會將字串從一個編碼方式轉換成另外一個編碼方式。
using System; using System.Text; class Example { static void Main() { string unicodeString = "This string contains the unicode character Pi (\u03a0)"; // Create two different encodings. Encoding ascii = Encoding.ASCII; Encoding unicode = Encoding.Unicode; // Convert the string into a byte array. byte[] unicodeBytes = unicode.GetBytes(unicodeString); // Perform the conversion from one encoding to the other. byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes); // Convert the new byte[] into a char[] and then into a string. char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)]; ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0); string asciiString = new string(asciiChars); // Display the strings created before and after the conversion. Console.WriteLine("Original string: {0}", unicodeString); Console.WriteLine("Ascii converted string: {0}", asciiString); } } // The example displays the following output: // Original string: This string contains the unicode character Pi (Π) // Ascii converted string: This string contains the unicode character Pi (?)