2014年3月18日 星期二

JAVA UTF8 to BIG5 轉碼缺字處理

在老舊的BIG5系統裡,要轉入來源檔為UTF8格式的文字檔。

然後在網頁上顯示該文字檔內容之解決方案。

以游錫堃 為例

游錫堃就會變成 游錫堃

程式如下:

 public static String utf8ToBig5(String inputStr)throws Exception{
   StringBuffer result = new StringBuffer();
   CharsetEncoder enc = Charset.forName("Big5").newEncoder();

   for(int i=0; i<inputStr.length(); i++){
       char c = inputStr.charAt(i);
       String utf8 = String.valueOf(c);

       int ansi = (int)c;
       if(!enc.canEncode(c)){
           utf8 = "&'||chr(35)||'" + ansi + ";";
       }
       result.append(utf8);
   }

   return result.toString();
}

與下向資料來源之程式,稍微不同是: # 在ORACLE裡為保留字。
所以改成'||chr(35)||' 才可正常存入資料庫。


資料來源:http://wadejen.my-life01.com/wp/?p=109