在 Java 中进行字符编码和解码涉及到将字符串在不同的字符集之间进行转换。常见的字符集包括 UTF-8、UTF-16、ISO-8859-1 等。下面我会介绍几种常见的 Java 字符编码转换方法,包括使用标准库和第三方库。
Java 标准库中的 java.nio.charset
包提供了字符编码和解码的功能。以下是使用标准库进行转码的步骤:
导入必要的包:
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
执行编码和解码:
String input = "Hello, 你好!";
byte[] encodedBytes = input.getBytes(StandardCharsets.UTF_8); // 编码为UTF-8字节数组
String decodedString = new String(encodedBytes, StandardCharsets.UTF_8); // 从UTF-8字节数组解码为字符串
Apache Commons Text 库提供了更多的字符操作方法,包括字符集转换。以下是使用该库进行转码的步骤:
导入依赖(Maven):
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.9</version>
</dependency>
执行编码和解码:
import org.apache.commons.text.StringEscapeUtils;
String input = "Hello, 你好!";
String encodedString = StringEscapeUtils.escapeJava(input); // 编码为Unicode转义字符串
String decodedString = StringEscapeUtils.unescapeJava(encodedString); // 解码为原始字符串
Google Guava 库也提供了字符编码转换的方法。以下是使用该库进行转码的步骤:
导入依赖(Gradle):
implementation 'com.google.guava:guava:30.1.1-jre'
执行编码和解码:
import com.google.common.base.Charsets;
import com.google.common.escape.Escaper;
import com.google.common.escape.Escapers;
String input = "Hello, 你好!";
Escaper escaper = Escapers.javaStringEscaper(); // 创建转义器
String encodedString = escaper.escape(input); // 编码为Unicode转义字符串
String decodedString = escaper.unescape(encodedString); // 解码为原始字符串
这些示例演示了不同的方法来进行字符编码和解码。你可以根据自己的需求选择合适的方法。请注意,这些示例中的依赖版本可能会有所更新,建议查阅相关文档以获取最新的依赖信息。