`

java编码与解码

阅读更多
package com.bijian.url;

import java.io.UnsupportedEncodingException;

public class URLEncodeTest {

	public static void main(String[] args) {
		
		String str = "栢莱哈希";
		try {
			//编码
			String gb2312 = java.net.URLEncoder.encode(str, "GB2312");
			//解码
			String gb2312_res = java.net.URLDecoder.decode(gb2312, "GB2312");
			System.out.println("gb2312:" + gb2312);
			System.out.println("gb2312_res:" + gb2312_res);
			
			//编码
			String gbk = java.net.URLEncoder.encode(str, "GBK");
			//解码
			String gbk_res = java.net.URLDecoder.decode(gbk, "GBK");
			System.out.println("gbk:" + gbk);
			System.out.println("gbk_res:" + gbk_res);
			
			//编码
			String utf8 = java.net.URLEncoder.encode(str, "utf-8");
			//解码
			String utf8_res = java.net.URLDecoder.decode(utf8, "utf-8");
			System.out.println("utf8:" + utf8);
			System.out.println("utf8_res:" + utf8_res);
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

         运行结果:

gb2312:%3F%C0%B3%B9%FE%CF%A3
gb2312_res:?莱哈希
gbk:%96%E0%C0%B3%B9%FE%CF%A3
gbk_res:栢莱哈希
utf8:%E6%A0%A2%E8%8E%B1%E5%93%88%E5%B8%8C
utf8_res:栢莱哈希

        发现gb2312编码解码后出现了乱码。

        这是因为:GBK是GB2312的一个超集,也就是说GB2312里的字GBK里都有,GBK里有的,GB2312未必有。有些生辟字在GBK里有,GB2312就没有了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics