URLEncoder与URLDecoder编码相互转换
URLEncoder.encode("北京 东城 东城区", "UTF-8") 会把汉字转成UTF-8编码,空格转成“+”,如:
%E5%8C%97%E4%BA%AC+%E4%B8%9C%E5%9F%8E+%E4%B8%9C%E5%9F%8E%E5%8C%BA
要把“+”换成%20,再调用一次replaceAll()就行了,如:
URLEncoder.encode("北京 东城 东城区", "UTF-8").replaceAll("+","%20")
结果:
%E5%8C%97%E4%BA%AC%20%E4%B8%9C%E5%9F%8E%20%E4%B8%9C%E5%9F%8E%E5%8C%BA
相互转换
转换成编码:
URLEncoder.encode("北京");
输出:%E5%8C%97%E4%BA%AC
转换成汉字:
java.net.URLDecoder.decode("%E5%8C%97%E4%BA%AC","UTF-8");
输出:北京
取得本机默认的编码方式名称:
Charset.defaultCharset().name();
例如:UTF-8