Java:URLEncoder、URLDecoder、Base64编码与解码

您所在的位置:网站首页 常用url编码 Java:URLEncoder、URLDecoder、Base64编码与解码

Java:URLEncoder、URLDecoder、Base64编码与解码

2024-06-29 00:31| 来源: 网络整理| 查看: 265

1. URL

主要用来http get请求url不能传输中文参数问题。http请求是不接受中文参数的

1.1 URLEncoder编码

使用指定的编码机制将字符串转换为 application/x-www-form-urlencoded 格式

对String编码时,使用以下规则:

字母数字字符 “a” 到 “z”、“A” 到 “Z” 和 “0” 到 “9” 保持不变。特殊字符 “.”、"-"、"*" 和 "_"保持不变。空格字符 " " 转换为一个加号 “+”。所有其他字符都是不安全的,因此首先使用一些编码机制将它们转换为一个或多个字节。然后每个字节用一个包含 3 个字符的字符串 "%xy"表示,其中 xy 为该字节的两位十六进制表示形式。推荐的编码机制是 UTF-8。 1.2 URLDecoder解码

使用指定的编码机制对 application/x-www-form-urlencoded 字符串解码。

1.3 举例 public static void main(String[] args) throws UnsupportedEncodingException { String str = "编码测试+-./&=a=1*%123"; String charset = "utf-8"; System.out.println("urlEncoder编码数据: " + str); String encode = URLEncoder.encode(str, charset); System.out.println("编码结果: " + encode); String decode = URLDecoder.decode(encode, charset); System.out.println("解码结果: " + decode); } urlEncoder编码数据: 编码测试+-./&=a=1*%123 编码结果: %E7%BC%96%E7%A0%81%E6%B5%8B%E8%AF%95%2B-.%2F%26%3Da%3D1*%25123 解码结果: 编码测试+-./&=a=1*%123 2. Base64

在网络中传输数据都是使用ascii方式传输。对于一些图片、视频等数据,可能就会被编码成ascii中不可见部分的编码。网络中不同的路由设备处理方式不同,有可能就会把这部分数据弄丢了。为了保证数据传输的正确性,可以使用Base64编码将这些不可见数据编码成可见数据。

由于某些系统中只能使用ASCII字符。Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法

2.1 Base64编码

Base64.getEncoder().encode(str.getBytes())

2.2 Base64解码

Base64.getDecoder().decode(encode)

2.3 举例 public static void main(String[] args) throws UnsupportedEncodingException { String str = "编码测试+-./&=a=1*%123"; String charset = "utf-8"; System.out.println("base64编码数据: " + str); String encode = new String(Base64.getEncoder().encode(str.getBytes())); System.out.println("编码结果: " + encode); String decode = new String(Base64.getDecoder().decode(encode)); System.out.println("解码结果: " + decode); } base64编码数据: 编码测试+-./&=a=1*%123 编码结果: 57yW56CB5rWL6K+VKy0uLyY9YT0xKiUxMjM= 解码结果: 编码测试+-./&=a=1*%123


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3