Java NIO字元集

java.nio.charset.Charset包使用的是在JDK 1.4中引入了字元集的概念。它在給定的字元集和UNICODE之間的編碼和解碼中起著重要的作用。

字元集的名稱必須遵循某些規則。它必須以數字或字母開頭。Charset類方法在多線程環境中也是安全的。

標準字元集

Java支持的字元集列表如下:

  • UTF-88位UCS轉換格式。
  • US-ASCII7位ASCII字元。
  • UTF-16LE16位UCS轉換,小字節順序。
  • ISO-8859-1:ISO拉丁字母
  • UTF-16:16位UCS轉換格式。
  • UTF-16BE:大字節順序的16位UCS變換格式
  • Charset.displayName() - 在Java NIO中用於返回規範名稱的字元集。
  • Charset.encode() - 在Java NIO中用於將UNICODE字元集的charbuffer編碼為給定字元集的CharBuffer
  • Charset.decode() - 在Java NIO中用於將給定字元集的字串解碼為Unicode字元集的CharBuffer

基本字串示例

package com.zaixian;

import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;

public class CharsetExample {
    public static void main(String[] args) {
        Charset cs = Charset.forName("UTF-8");
        System.out.println(cs.displayName());
        System.out.println(cs.canEncode());
        String st = "Welcome to xuhuhu.com, it is Charset test Example.";
        // The conversion of byte buffer from given charset to char buffer in
        // unicode
        ByteBuffer bytebuffer = ByteBuffer.wrap(st.getBytes());
        CharBuffer charbuffer = cs.decode(bytebuffer);
        // The converesion of char buffer from unicode to byte buffer in given
        // charset
        ByteBuffer newbytebuffer = cs.encode(charbuffer);
        while (newbytebuffer.hasRemaining()) {
            char ca = (char) newbytebuffer.get();
            System.out.print(ca);
        }
        newbytebuffer.clear();
    }
}

執行上面示例代碼,得到以下結果 -

UTF-8
true
Welcome to xuhuhu.com, it is Charset test Example.

上一篇: Java NIO管道 下一篇: Java NIO編碼和解碼