%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"));
    }
}

  

posted @ 2023-01-31 15:46  信铁寒胜  阅读(458)  评论(0编辑  收藏  举报