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