java如何解码
Java 解码方法
在 Java 中,解码通常涉及将编码后的数据(如 Base64、URL 编码或字符集转换)还原为原始形式。以下是几种常见的解码场景及实现方法。
Base64 解码
Java 8 及以上版本提供了 java.util.Base64 类,支持 Base64 解码:
import java.util.Base64;
String encodedString = "SGVsbG8gV29ybGQ="; // Base64 编码的字符串
byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
String decodedString = new String(decodedBytes); // 输出: "Hello World"
URL 解码
使用 java.net.URLDecoder 对 URL 编码的字符串进行解码:
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
String encodedUrl = "Hello%20World%21";
String decodedUrl = URLDecoder.decode(encodedUrl, StandardCharsets.UTF_8); // 输出: "Hello World!"
字符集解码
处理不同字符集的字节数据时,使用 Charset 或 String 的构造函数:
byte[] bytes = new byte[] {72, 101, 108, 108, 111}; // "Hello" 的字节表示
String decodedString = new String(bytes, StandardCharsets.UTF_8); // 输出: "Hello"
Hex 解码
将十六进制字符串转换为字节数组:

String hexString = "48656c6c6f"; // "Hello" 的十六进制表示
byte[] bytes = new byte[hexString.length() / 2];
for (int i = 0; i < bytes.length; i++) {
int index = i * 2;
bytes[i] = (byte) Integer.parseInt(hexString.substring(index, index + 2), 16);
}
String decodedString = new String(bytes, StandardCharsets.UTF_8); // 输出: "Hello"
注意事项
- 解码时需明确原始编码方式(如 UTF-8、ISO-8859-1),否则可能导致乱码。
- 处理 URL 或 Base64 解码时,需捕获可能的异常(如
IllegalArgumentException)。 - 对于复杂编码(如加密数据),需结合具体算法或库(如 AES 解密)。






