java.nio.charset.Charset包使用的是在JDK 1.4中引入了字符集的概念。它在给定的字符集和UNICODE之间的编码和解码中起着重要的作用。
字符集的名称必须遵循某些规则。它必须以数字或字母开头。Charset类方法在多线程环境中也是安全的。
标准字符集
Java支持的字符集列表如下:
UTF-8:8位UCS转换格式。
US-ASCII:7位ASCII字符。
UTF-16LE:16位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.yiibai;
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 yiibai.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 yiibai.com, it is Charset test Example.
¥ 我要打赏
纠错/补充
收藏
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。