JAVA UTF-8 GB2312 编码互转

 
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

public class UnicodeChange {

	//UTF-8->GB2312
	public static String utf8Togb2312(String str){ 

        StringBuffer sb = new StringBuffer(); 

        for ( int i=0; i<str.length(); i++) { 

            char c = str.charAt(i); 
            switch (c) { 
               case '+' : 
                   sb.append( ' ' ); 
               break ; 
               case '%' : 
                   try { 
                        sb.append(( char )Integer.parseInt ( 
                        str.substring(i+1,i+3),16)); 
                   } 
                   catch (NumberFormatException e) { 
                       throw new IllegalArgumentException(); 
                  } 

                  i += 2; 

                  break ; 
                  
               default : 

                  sb.append(c); 

                  break ; 

             } 

        } 

        String result = sb.toString(); 

        String res= null ; 

        try { 

             byte [] inputBytes = result.getBytes( "8859_1" ); 

            res= new String(inputBytes, "UTF-8" ); 

        } 

        catch (Exception e){} 

        return res; 

  }


	//GB2312->UTF-8
	public static String gb2312ToUtf8(String str) { 

        String urlEncode = "" ; 

        try { 

            urlEncode = URLEncoder.encode (str, "UTF-8" ); 

        } catch (UnsupportedEncodingException e) { 

            e.printStackTrace(); 

        } 

        return urlEncode; 

    }
	

	public static void main(String[] args){   
	       	        
	    	try {
			
	    	String str="輸入簡體字,點下面繁體字按鈕進行在線轉換.";//%E4%B8%AD%E5%9B%BD
	    		
	    	str=gb2312ToUtf8(str);
	    		
			System.out.println(str);
				  
			str=utf8Togb2312(str);
				
			System.out.println(str);
				
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

	        
	    }   
	


}

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值