UTF8 string 轉為 BIG5 string
這幾天在Trouble shooting時,有遇到一個特別的狀況,就是兩台DB的編碼設定不同,一台是設BIG5,另一台是UTF8,UTF8的資料會是查詢條件帶到BIG5那台去,當遇到稀有字時(例如:鍈),就會有問題,這個字在BIG5顯示出來的會是"?",而UTF8則是正常,那麼從UTF8帶出的"鍈",要怎麼去BIG5找出來?
這時找到一個方法,就是把UTF8的string轉為BIG5,這樣就能到DB去比對出來了.
Sample Code as Below.
public static string ConvertUTF8toBIG5(string strInput)
{
byte[] strut8 = System.Text.Encoding.Unicode.GetBytes(strInput);
byte[] strbig5 = System.Text.Encoding.Convert(System.Text.Encoding.Unicode, System.Text.Encoding.Default, strut8);
return System.Text.Encoding.Default.GetString(strbig5);
}
之前寫的時候,沒想到這個問題,今天它就用"鍈"這個字來逞罰我,下次寫程式的時候,要注意到編碼的問題.