[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