[C#.NET][VB.NET] Encoding 字串編碼 / 解碼

  • 34276
  • 0
  • C#
  • 2009-01-20

[C#.NET][VB.NET] Encoding 字串編碼 / 解碼

每一個字串和文字檔案都會使用不同編碼標準進行編碼(Encoding),而.NET在大部份的情況之下會自動處理編碼的動作,不過有時也需要手動控制編碼還有解碼(Decoding)的動作,例如你想對某個檔案使用特別的編碼來進行加密。

System.Text命名空間正提供編碼及解碼的功能。

程式開始之前,請先匯入

System.IO
System.Text

 

如何編碼

1.定義要編碼的文件

//定義要編碼的文件
StreamReader myReader = new StreamReader(@"C:\boot.ini");

 

2.設定編碼後的文件及編碼類型

//設定編碼後的文件及編碼類型
StreamWriter myWriter = new StreamWriter("boot-utf7.txt",false, Encoding.UTF7);

 

3.寫入編碼資料

//寫入編碼資料
myWriter.WriteLine(myReader.ReadToEnd());

 

4.釋放資源

//釋放資源
myWriter.Close();
myReader.Close();

 

 下圖為編碼後的檔案

如何解碼

1.定義要解碼的文件

//定義要解碼的文件
StreamReader myReader = new StreamReader(@"c:\boot-utf7.txt", Encoding.UTF7);

 

2.讀取資料流

//輸出文件
Console.WriteLine(myReader.ReadToEnd());

 

3.釋放資源

//釋放資源
myReader.Close();

 

 下圖為解碼後的內容,英文數字是不會有異樣的,因為ACSII就足以表示所有的英文,但是英文以外的就會有異樣了。

若不指定編碼類型,.NET預設會用UTF-16解碼,當然也可以試著用別的編碼來解,看會有什麼樣的結果產生

 

PS.範例包含VB與C#

範例下載:文字編碼與解碼.rar

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo