JAVA UTF-8 GB2312 编码互转

来源:互联网 发布:淘宝联盟推荐理由 编辑:程序博客网 时间:2024/05/16 05:48
  1. import java.io.UnsupportedEncodingException;  
  2. import java.net.URLEncoder;  
  3.   
  4. public class UnicodeChange {  
  5.   
  6.     //UTF-8->GB2312  
  7.     public static String utf8Togb2312(String str){   
  8.   
  9.         StringBuffer sb = new StringBuffer();   
  10.   
  11.         for ( int i=0; i<str.length(); i++) {   
  12.   
  13.             char c = str.charAt(i);   
  14.             switch (c) {   
  15.                case '+' :   
  16.                    sb.append( ' ' );   
  17.                break ;   
  18.                case '%' :   
  19.                    try {   
  20.                         sb.append(( char )Integer.parseInt (   
  21.                         str.substring(i+1,i+3),16));   
  22.                    }   
  23.                    catch (NumberFormatException e) {   
  24.                        throw new IllegalArgumentException();   
  25.                   }   
  26.   
  27.                   i += 2;   
  28.   
  29.                   break ;   
  30.                     
  31.                default :   
  32.   
  33.                   sb.append(c);   
  34.   
  35.                   break ;   
  36.   
  37.              }   
  38.   
  39.         }   
  40.   
  41.         String result = sb.toString();   
  42.   
  43.         String res= null ;   
  44.   
  45.         try {   
  46.   
  47.              byte [] inputBytes = result.getBytes( "8859_1" );   
  48.   
  49.             res= new String(inputBytes, "UTF-8" );   
  50.   
  51.         }   
  52.   
  53.         catch (Exception e){}   
  54.   
  55.         return res;   
  56.   
  57.   }  
  58.   
  59.   
  60.     //GB2312->UTF-8  
  61.     public static String gb2312ToUtf8(String str) {   
  62.   
  63.         String urlEncode = "" ;   
  64.   
  65.         try {   
  66.   
  67.             urlEncode = URLEncoder.encode (str, "UTF-8" );   
  68.   
  69.         } catch (UnsupportedEncodingException e) {   
  70.   
  71.             e.printStackTrace();   
  72.   
  73.         }   
  74.   
  75.         return urlEncode;   
  76.   
  77.     }  
  78.       
  79.   
  80.     public static void main(String[] args){     
  81.                       
  82.             try {  
  83.               
  84.             String str="輸入簡體字,點下面繁體字按鈕進行在線轉換.";//%E4%B8%AD%E5%9B%BD  
  85.                   
  86.             str=gb2312ToUtf8(str);  
  87.                   
  88.             System.out.println(str);  
  89.                     
  90.             str=utf8Togb2312(str);  
  91.                   
  92.             System.out.println(str);  
  93.                   
  94.             } catch (Exception e) {  
  95.                 // TODO Auto-generated catch block  
  96.                 e.printStackTrace();  
  97.             }  
  98.   
  99.               
  100.         }     
  101.       
  102.   
  103.   
  104. }  
转自:http://blog.csdn.net/thl331860203/article/details/7322505
原创粉丝点击