%E6%97% 这些其实用于网络的utf-8编码

1、解释:

经分析,是“汉字”两个中文字符通过UTF8编码,转换为字节数组,再通过单字节格式化,转换为16进制数的结果。
解析代码如下,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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 如何实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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 @   信铁寒胜  阅读(497)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示