在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()
方法将String编码为字节序列,然后返回字节数组。
声明-该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("\nUTF-8 for \\uffff" );
for(byte b: brr) {
System.out.print(b);
}
}
}
输出结果
UTF-8 for \u00000
UTF-8 for \uffff
-17-65-65
让我们了解以上程序。我们创建了两个字符串。
String str1 = "\u0000";String str2 = "\uFFFF";
为字符串str1分配了\ u0000,这是Unicode中的最小值。为字符串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);
}
以上是 在Java中将Unicode转换为UTF-8 的全部内容, 来源链接: utcz.com/z/353453.html