Java 中的 Unicode 到 UTF-8 转换
在进行转换之前,让我们先了解一下 Unicode 和 UTF-8。
Unicode 是一种国际字符编码标准,能够表示全球大多数书面语言。Unicode 使用十六进制表示字符。Unicode 是一种 16 位字符编码系统。最小值为 \u0000,最大值为 \uFFFF。
UTF-8 是一种可变长度字符编码。UTF-8 可以像 ASCII 一样紧凑,但也包含任何 Unicode 字符,文件大小会略有增加。“UTF”代表 Unicode 转换格式。“8”表示它分配 8 位块来表示一个字符。表示一个字符所需的块数从 1 到 4 不等。
为了在 Java 中将 Unicode 转换为 UTF-8,我们使用 getBytes() 方法。getBytes() 方法将字符串编码成字节序列并返回一个字节数组。
声明 - getBytes() 方法声明如下。
public byte[] getBytes(String charsetName)
其中 charsetName 是将字符串编码成字节数组的特定字符集。
让我们看一个使用 getBytes() 方法在 Java 中将 Unicode 转换为 UTF-8 的程序。
示例
public class Example {
public static void main(String[] args) throws Exception {
String str1 = "\u0000";
String str2 = "\uFFFF";
byte[] arr = str1.getBytes("UTF-8");
byte[] brr = str2.getBytes("UTF-8");
System.out.println("UTF-8 for \u0000");
for(byte a: arr) {
System.out.print(a);
}
System.out.println("
UTF-8 for \uffff" );
for(byte b: brr) {
System.out.print(b);
}
}
}输出
UTF-8 for \u0000 0 UTF-8 for \uffff -17-65-65
让我们理解上面的程序。我们创建了两个字符串。
String str1 = "\u0000"; String str2 = "\uFFFF";
String str1 赋值为 \u0000,这是 Unicode 中的最小值。String str2 赋值为 \uFFFF,这是 Unicode 中的最大值。
为了将它们转换为 UTF-8,我们使用 getBytes(“UTF-8”) 方法。这将给我们一个如下所示的字节数组:
byte[] arr = str1.getBytes("UTF-8");
byte[] brr = str2.getBytes("UTF-8");然后,为了打印字节数组,我们使用增强的 for 循环,如下所示:
for(byte a: arr) {
System.out.print(a);
}
for(byte b: brr) {
System.out.print(b);
}
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP