- Java NIO 教程
- Java NIO - 首頁
- Java NIO - 概述
- Java NIO - 環境設定
- Java NIO 對比 Java IO
- Java NIO - 通道
- Java NIO - 檔案通道
- Java NIO - 資料報通道
- Java NIO - 套接字通道
- Java NIO - 伺服器套接字通道
- Java NIO - 分散
- Java NIO - 收集
- Java NIO - 緩衝區
- Java NIO - 選擇器
- Java NIO - 管道
- Java NIO - 路徑
- Java NIO - 檔案
- Java NIO - 非同步檔案通道
- Java NIO - CharSet
- Java NIO - 檔案鎖
- Java NIO 有用資源
- Java NIO - 快速指南
- Java NIO - 有用資源
- Java NIO - 討論
Java NIO - CharSet
在 Java 中,每個字元都有一個由 JVM 內部處理的明確定義的 unicode 程式碼單元。因此,Java NIO 包定義了一個名為 Charset 的抽象類,主要用於 charset 和 UNICODE 的編碼和解碼。
標準字元集
下面給出 Java 中支援的 Charset。
US-ASCII − 七位 ASCII 字元。
ISO-8859-1 − ISO 拉丁字母。
UTF-8 − 這是 8 位 UCS 轉換格式。
UTF-16BE − 這是 16 位 UCS 轉換格式,採用大端位元組順序。
UTF-16LE − 這是 16 位 UCS 轉換格式,採用小端位元組順序。
UTF-16 − 16 位 UCS 轉換格式。
Charset 類的重要方法
forName() − 此方法為給定的 charset 名稱建立一個 charset 物件。該名稱可以是規範名稱或別名。
displayName() − 此方法返回給定 charset 的規範名稱。
canEncode() − 此方法檢查給定的字元集是否支援編碼。
decode() − 此方法將給定 charset 的字串解碼為 Unicode charset 的字元緩衝區。
encode() − 此方法將 unicode charset 的字元緩衝區編碼為給定 charset 的位元組緩衝區。
示例
以下示例說明了 Charset 類的重要方法。
package com.java.nio;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
public class CharsetExample {
public static void main(String[] args) {
Charset charset = Charset.forName("US-ASCII");
System.out.println(charset.displayName());
System.out.println(charset.canEncode());
String str= "Demo text for conversion.";
//convert byte buffer in given charset to char buffer in unicode
ByteBuffer byteBuffer = ByteBuffer.wrap(str.getBytes());
CharBuffer charBuffer = charset.decode(byteBuffer);
//convert char buffer in unicode to byte buffer in given charset
ByteBuffer newByteBuffer = charset.encode(charBuffer);
while(newbb.hasRemaining()){
char ch = (char) newByteBuffer.get();
System.out.print(ch);
}
newByteBuffer.clear();
}
}
輸出
US-ASCII Demo text for conversion.
廣告