Encoding 类别

时间:2022-06-27 08:12:28

Encoding 類別

.NET Framework 4.5

表示字元編碼方式。

  名稱 說明
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 Encoding() 初始化 Encoding 類別的新執行個體。
Encoding 类别Encoding 类别 Encoding(Int32) 初始化對應到指定字碼頁之 Encoding 類別的新執行個體。

回頁首

顯示: 受繼承 受保護
  名稱 說明
Encoding 类别Encoding 类别Encoding 类别 ASCII 取得 ASCII (7 位元) 字元集 (Character Set) 的編碼方式。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别Encoding 类别 BigEndianUnicode 取得 UTF-16 格式的編碼方式,其使用由大到小的位元組順序。
Encoding 类别 BodyName 在衍生類別中覆寫時,取得可以與郵件代理程式主體標籤一起使用的目前編碼方式名稱。
Encoding 类别Encoding 类别 CodePage 在衍生類別中覆寫時,取得目前 Encoding 的字碼頁識別項。
Encoding 类别 DecoderFallback 取得或設定目前 Encoding 物件的 DecoderFallback 物件。
Encoding 类别Encoding 类别Encoding 类别 Default 取得作業系統目前 ANSI 字碼頁的編碼方式。
Encoding 类别 EncoderFallback 取得或設定目前 Encoding 物件的 EncoderFallback 物件。
Encoding 类别 EncodingName 在衍生類別中覆寫時,取得目前編碼方式的人們可讀取 (Human-Readable) 的描述。
Encoding 类别 HeaderName 在衍生類別中覆寫時,取得可以與郵件代理程式標頭標籤一起使用的目前編碼方式名稱。
Encoding 类别 IsBrowserDisplay 在衍生類別中覆寫時,取得值,指出瀏覽器用戶端是否可以使用目前的編碼方式來顯示內容。
Encoding 类别 IsBrowserSave 在衍生類別中覆寫時,取得值,指出瀏覽器用戶端是否可以使用目前的編碼方式來儲存內容。
Encoding 类别 IsMailNewsDisplay 在衍生類別中覆寫時,取得值,指出郵件和新聞用戶端是否可以使用目前的編碼方式來顯示內容。
Encoding 类别 IsMailNewsSave 在衍生類別中覆寫時,取得值,指出郵件和新聞用戶端是否可以使用目前的編碼方式來儲存內容。
Encoding 类别 IsReadOnly 在衍生類別中覆寫時,取得值,指出目前的編碼方式是否為唯讀。
Encoding 类别 IsSingleByte 在衍生類別中覆寫時,取得值,指出目前的編碼方式是否使用單一位元組字碼指標。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别Encoding 类别 Unicode 以位元組由小到大位元組順序取得 UTF-16 格式的編碼方式。
Encoding 类别Encoding 类别 UTF32 以位元組由小到大位元組順序取得 UTF-32 格式的編碼方式。
Encoding 类别Encoding 类别Encoding 类别 UTF7 取得 UTF-7 格式的編碼方式。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别Encoding 类别 UTF8 取得 UTF-8 格式的編碼方式。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 WebName 在衍生類別中覆寫時,若要取得目前的編碼方式,請取得向 Internet Assigned Numbers Authority (IANA) 註冊的名稱。
Encoding 类别 WindowsCodePage 在衍生類別中覆寫時,請取得最能符合目前編碼方式的 Windows 作業系統字碼頁。

回頁首

顯示: 受繼承 受保護
  名稱 說明
Encoding 类别Encoding 类别 Clone 在衍生類別中覆寫時,會建立目前 Encoding 物件的淺層複本。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别Encoding 类别 Convert(Encoding, Encoding, Byte[]) 將整個位元組陣列從一種編碼方式轉換成另一種編碼方式。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别Encoding 类别 Convert(Encoding, Encoding, Byte[], Int32, Int32) 將位元組陣列中的某一位元組範圍由一種編碼方式轉換成另一種編碼方式。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 Equals 判斷指定的 Object 和目前的執行個體是否相等。 (覆寫Object.Equals(Object)。)
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 Finalize 允許物件在記憶體回收進行回收之前,嘗試釋放資源並執行其他清除作業。 (繼承自 Object)。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetByteCount(Char[]) 在衍生類別中覆寫時,計算編碼指定字元陣列中所有字元所產生的位元組數目。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetByteCount(String) 在衍生類別中覆寫時,計算編碼指定的字串字元所產生的位元組數目。
Encoding 类别Encoding 类别 GetByteCount(Char*, Int32) 在衍生類別中覆寫時,計算從指定的字元指標開始,編碼一組字元所產生的位元組數目。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetByteCount(Char[], Int32, Int32) 在衍生類別中覆寫時,計算從指定的字元陣列編碼一組字元所產生的位元組數目。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetBytes(Char[]) 在衍生類別中覆寫時,將指定字元陣列中的所有字元編碼成位元組序列。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetBytes(String) 在衍生類別中覆寫時,將指定字串中的所有字元編碼成位元組序列。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetBytes(Char[], Int32, Int32) 在衍生類別中覆寫時,將指定字元陣列中的一組字元編碼成位元組序列。
Encoding 类别Encoding 类别 GetBytes(Char*, Int32, Byte*, Int32) 在衍生類別中覆寫時,從指定字元指標開始將一組字元編碼成位元組序列 (會從指定的位元組指標開始存放這些位元組)。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetBytes(Char[], Int32, Int32, Byte[], Int32) 在衍生類別中覆寫時,將指定字元陣列中的一組字元編碼成指定的位元組陣列。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetBytes(String, Int32, Int32, Byte[], Int32) 在衍生類別中覆寫時,將指定字串中的一組字元編碼成指定的位元組陣列。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetCharCount(Byte[]) 在衍生類別中覆寫時,計算解碼指定位元組陣列中所有位元組所產生的字元數目。
Encoding 类别Encoding 类别 GetCharCount(Byte*, Int32) 在衍生類別中覆寫時,計算從指定的位元組指標開始,解碼位元組序列所產生的字元數目。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetCharCount(Byte[], Int32, Int32) 在衍生類別中覆寫時,計算從指定的位元組陣列解碼位元組序列所產生的字元數目。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetChars(Byte[]) 在衍生類別中覆寫時,將指定位元組陣列中的所有位元組解碼成一組字元。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetChars(Byte[], Int32, Int32) 在衍生類別中覆寫時,將指定位元組陣列中的位元組序列解碼成一組字元。
Encoding 类别Encoding 类别 GetChars(Byte*, Int32, Char*, Int32) 在衍生類別中覆寫時,從指定位元組指標開始將位元組序列解碼成一組字元 (會從指定的字元指標開始存放這些字元)。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetChars(Byte[], Int32, Int32, Char[], Int32) 在衍生類別中覆寫時,將指定位元組陣列中的位元組序列解碼成指定的字元陣列。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetDecoder 在衍生類別中覆寫時,取得會將編碼的位元組序列轉換成字元序列的解碼器。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetEncoder 在衍生類別中覆寫時,取得會將 Unicode 字元序列轉換成編碼的位元組序列的編碼器。
Encoding 类别Encoding 类别Encoding 类别 GetEncoding(Int32) 傳回與指定字碼頁識別項相關聯的編碼方式。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetEncoding(String) 傳回與指定字碼頁名稱相關聯的編碼方式。
Encoding 类别Encoding 类别 GetEncoding(Int32, EncoderFallback, DecoderFallback) 傳回與指定字碼頁識別項相關聯的編碼方式。 參數會針對無法編碼的字元以及無法解碼的位元組序列指定錯誤處理常式。
Encoding 类别Encoding 类别 GetEncoding(String, EncoderFallback, DecoderFallback) 傳回與指定字碼頁名稱相關聯的編碼方式。 參數會針對無法編碼的字元以及無法解碼的位元組序列指定錯誤處理常式。
Encoding 类别Encoding 类别 GetEncodings 傳回包含所有編碼方式的陣列。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetHashCode 傳回目前執行個體的雜湊程式碼。 (覆寫 Object.GetHashCode()。)
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetMaxByteCount 在衍生類別中覆寫時,計算編碼指定的字元數所產生的最大位元組數目。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetMaxCharCount 在衍生類別中覆寫時,計算解碼指定的位元組數目所產生的最大字元數目。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetPreamble 在衍生類別中覆寫時,傳回可指定所用編碼方式的位元組序列。
Encoding 类别 GetString(Byte[]) 在衍生類別中覆寫時,將指定位元組陣列中的所有位元組解碼成字串。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetString(Byte[], Int32, Int32) 在衍生類別中覆寫時,將指定位元組陣列中的位元組序列解碼成字串。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 GetType 取得目前執行個體的 Type。 (繼承自 Object)。
Encoding 类别 IsAlwaysNormalized() 取得值,指出目前的編碼方式是否永遠都是使用預設的正規化表單進行正規化。
Encoding 类别 IsAlwaysNormalized(NormalizationForm) 在衍生類別中覆寫時取得值,指出目前的編碼方式是否永遠都是使用指定的正規化表單進行正規化。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 MemberwiseClone 建立目前 Object 的淺層複本 (Shallow Copy)。 (繼承自 Object)。
Encoding 类别Encoding 类别Encoding 类别Encoding 类别 ToString 傳回表示目前物件的字串。 (繼承自 Object)。

回頁首

編碼是將一組 Unicode 字元轉換成位元組序列的處理程序。 相反地,解碼則是將已編碼的位元組序列轉換成一組 Unicode 字元的處理程序。 如需 Unicode Transformation Format (UTF) 和Encoding 所支援之其他編碼的詳細資訊,請參閱.NET Framework 中的字元編碼方式

請注意,Encoding 主要是處理 Unicode 字元,而不是任意的二進位資料,例如位元組陣列。如果您的應用程式必須將任意二進位資料編碼成文字,應該使用諸如 uuencode 的通訊協定;該通訊協定是由 Convert.ToBase64CharArray 之類的方法所實作。

.NET Framework 提供下列 Encoding 類別實作來支援目前的 Unicode 編碼方式和其他編碼方式:

  • ASCIIEncoding 可編碼 Unicode 字元成單一 7 位元 ASCII 字元。 這種編碼方式只支援 U+0000 和 U+007F 之間的字元值。 字碼頁 20127。 也可透過 ASCII 屬性取得。

  • UTF7Encoding 會使用 UTF-7 編碼方式為 Unicode 字元編碼。 這種編碼方式支援所有的 Unicode 字元值。 字碼頁 65000。 也可透過 UTF7 屬性取得。

  • UTF8Encoding 會使用 UTF-8 編碼方式為 Unicode 字元編碼。 這種編碼方式支援所有的 Unicode 字元值。 字碼頁 65001。 也可透過 UTF8 屬性取得。

  • UnicodeEncoding 會使用 UTF-16 編碼方式為 Unicode 字元編碼。 同時支援由小到大和由大到小的位元組順序。 也可透過 Unicode 屬性和 BigEndianUnicode 屬性取得。

  • UTF32Encoding 會使用 UTF-32 編碼方式為 Unicode 字元編碼。 同時支援位元組由小到大 (字碼頁 12000) 和位元組由大到小 (字碼頁 12001) 的位元組順序。 也可透過 UTF32 屬性取得。

Encoding 類別主要用於在不同的編碼與 Unicode 之間轉換。 通常,一個衍生的 Unicode 類別就是適合應用程式的正確選擇。

您的應用程式會使用 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 (?)