%E6%97% 这些其实用于网络的utf-8编码
1、解释:
经分析,是“汉字”两个中文字符通过UTF8编码,转换为字节数组,再通过单字节格式化,转换为16进制数的结果。
解析代码如下,
try{ // TODO Auto-generated method stub String city="广州"; byte b[]=city.getBytes("utf-8"); String str=""; for(int i=0;i<b.length;i++){ str=str+"%"+Integer.toHexString(b[i]).substring(6); } System.out.println(str); } catch(Exception e){} (二)读txt文件 byte[] buf=new byte[1000*1024]; InputStream in=getAssets().open("rss.txt"); in.read(buf); String f[]=EncodingUtils.getString(buf,"GB2312").split("\n"); (三)读utf-8文件(按行读) BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8"));
2、java 如何实现
package com.zixue.springbootmybatis.test; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; /** 编码Encode后都返回了新的字符串,编码后的字符串不能跨平台,所以要统一制定编码格式 * 需要注意的是在url中 "\" '&' '=' ':' '/'都是具有特殊意义的符号,这些符号一旦被编译后就会失去本身的 * 含义,导致无法被解析, * 所以在url中需要分块编码, * 解码Decoder类中decode方法作用是变回成普通字符,其中加号会变成空格, * */ public class testtest { public static void main(String[] args) throws UnsupportedEncodingException { String url = "http://www.baidu.com?name='张三'&age=18 "; String encodeStr = URLEncoder.encode(url,"UTF-8"); System.out.println(encodeStr); System.out.println(URLDecoder.decode(encodeStr,"UTF-8")); } }