鍍金池/ 教程/ Java/ Java國際化(i18n)字符串與Unicode轉(zhuǎn)換
Java國際化(i18n)教程
Java國際化(i18n)UTC
Java國際化(i18n)SimpleDateFormat類
Java國際化(i18n)解析數(shù)字
Java國際化(i18n)格式化百分比
Java國際化(i18n) Locale類
Java國際化(i18n)特定于區(qū)域的格式化日期
Java國際化(i18n)日期格式模式
Java國際化(i18n)格式化日期時間
Java國際化(i18n)格式化模式
Java國際化(i18n)顯示語言
Java國際化(i18n) Locale類詳細(xì)示例
Java國際化(i18n)ResourceBundle類
Java國際化(i18n)區(qū)域設(shè)置特定的DecimalFormat
Java國際化(i18n)NumberFormat類
Java國際化(i18n)設(shè)置最小/最大精度
Java國際化(i18n)分組數(shù)字
Java國際化(i18n)DateFormat類
Java國際化(i18n)Reader/Writer與Unicode轉(zhuǎn)換
Java國際化(i18n)簡介
Java國際化(i18n)DateFormatSymbols類
Java國際化(i18n)設(shè)置舍入模式
Java國際化(i18n)DecimalFormatSymbols類
Java國際化(i18n)格式化時間
Java國際化(i18n)格式化日期
Java國際化(i18n)字符串與Unicode轉(zhuǎn)換
Java國際化(i18n)格式化貨幣
Java國際化(i18n)DecimalFormat類

Java國際化(i18n)字符串與Unicode轉(zhuǎn)換

在java中,文本是以Unicode格式內(nèi)部存儲的。 如果輸入/輸出格式不同,則需要轉(zhuǎn)換。

轉(zhuǎn)換

以下示例將展示將Unicode字符串轉(zhuǎn)換為UTF8字節(jié),以及將UTF8字節(jié)轉(zhuǎn)為Unicode字節(jié)轉(zhuǎn)換。

文件:IOTester.java -

import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.text.ParseException;

public class I18NTester {
   public static void main(String[] args) throws ParseException, UnsupportedEncodingException {

      String unicodeString = "\u00C6\u00D8\u00C5" ;

      //convert Unicode to UTF8 format
      byte[] utf8Bytes = unicodeString.getBytes(Charset.forName("UTF-8"));
      printBytes(utf8Bytes, "UTF 8 Bytes");

      //convert UTF8 format to Unicode
      String converted = new String(utf8Bytes, "UTF8");
      byte[] unicodeBytes = converted.getBytes();
      printBytes(unicodeBytes, "Unicode Bytes");
   }

   public static void printBytes(byte[] array, String name) {
      for (int k = 0; k < array.length; k++) {
         System.out.println(name + "[" + k + "] = " + array[k]);

      }
   }
}

執(zhí)行上面示例代碼,得到以下結(jié)果 -

UTF 8 Bytes[0] = -61
UTF 8 Bytes[1] = -122
UTF 8 Bytes[2] = -61
UTF 8 Bytes[3] = -104
UTF 8 Bytes[4] = -61
UTF 8 Bytes[5] = -123
Unicode Bytes[0] = -58
Unicode Bytes[1] = -40
Unicode Bytes[2] = -59