這幾天在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);
    }


之前寫的時候,沒想到這個問題,今天它就用"鍈"這個字來逞罰我,下次寫程式的時候,要注意到編碼的問題.

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 jeffyeh 的頭像
    jeffyeh

    jeffyeh

    jeffyeh 發表在 痞客邦 留言(0) 人氣()