编码
一、Base64编码
一种基于64个可打印字符来表示二进制数据的方法。目前Base64已经成为网络上常见的传输8Bit字节代码的编码方式之一。
-
说明:因为在参数传输的过程中经常遇到的一种情况是涉及到中文会出现乱码情况。与此类似,网络上传输的字符并不全是可打印的字符,比如二进制文件、图片等。Base64的出现就是为了解决此问题,它是基于64个可打印的字符来表示二进制的数据的一种方法。
java中实现编码、解码:java8的util套件中已经自带Base64编解码工具,并且效率非常高,推荐使用这种方式。
/** * Java8中的Base64编码 * @param str * @return */ public static String encodeByJava8(String str) { try { return Base64.getEncoder().encodeToString(str.getBytes("UTF-8")); } catch (Exception e) { e.printStackTrace(); return ""; } } /** * Java8中的Base64解码 * @param str * @return */ public static String decodeByJava8(String str) { byte[] result = Base64.getDecoder().decode(str.getBytes()); return new String(result); }
二、URL编码
指的是对URL链接进行编码,避免URL中的特殊字符导致传输错误,比如空格(
)、问号(?
)、斜杠(/
)等。
- 编码方式:
%
后跟两个表示该字符 ASCII 码的十六进制数字,如 https://aaa.com/v1/get?text=%E5%95%8A%E5%95%8A%E5%95%8A.pdf
// 编码 String original = "Hello World!"; String encoded = URLEncoder.encode(original, "UTF-8"); System.out.println("Encoded: " + encoded); // 输出 "Hello+World%21" // 解码 String encoded = "Hello%20World%21"; String decoded = URLDecoder.decode(encoded, "UTF-8"); System.out.println("Decoded: " + decoded); // 输出 "Hello World!"
三、Unicode编码
Unicode 是一种字符编码标准,旨在为世界上所有的字符集提供唯一的编码。它为不同的文字和符号分配了唯一的数值,使得计算机系统能够一致地处理文本数据。
Unicode可通过多种方式进行编码表示,常见的编码格式包括:
- UTF-8:可变长度的编码格式,使用 1 到 4 个字节表示一个字符,中文3个字符。
- 向后兼容 ASCII,常用于网络传输和存储文件的编码。
- 优点:节省空间,特别是对于英语文本,因为英文字符通常只需要 1 个字节。
- UTF-16:可变长度的编码格式,通常使用 2 或 4 个字节。
- 常用于操作系统和编程语言内部的编码。
- 优点:对于大多数字符,使用 2 个字节编码,适合东亚语言的字符集。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话