您的位置 首页 java

Java字符集

我们可以使用编码方案将 Unicode 字符转换为字节序列,反之亦然。

Java .nio. Charset 包提供了将CharBuffer 编码 /解码为ByteBuffer的类,反之亦然。

Charset类的对象表示编码方案。 CharsetEncoder类执行编码。 CharsetDecoder类执行解码。

我们可以通过传递字符集的名称作为它的参数,使用它的forName()方法获得Charset类的对象。

对于简单的编码和解码任务,我们可以使用Charset类的encode()和decode()方法。

以下代码显示如何对存储在字符缓冲区中的 字符串 Hello中的字符序列进行编码,并使用UTF-8编码方案对其进行解码。

Charset cs = Charset.forName("UTF-8");
CharBuffer cb = CharBuffer.wrap("Hello");
ByteBuffer encodedData =  cs .encode(cb);
CharBuffer decodedData = cs.decode(encodedData);
 

CharsetEncoder和CharsetDecoder类接受要编码或解码的输入块。

Charset类的encode()和decode()方法将编码和解码的缓冲区返回给我们。

以下代码显示如何从Charset对象获取编码器和解码器对象。

Charset cs = Charset.forName("UTF-8"); 
CharsetEncoder encoder = cs.newEncoder(); 
CharsetDecoder decoder = cs.newDecoder();
 

以下代码演示如何列出JVM支持的所有字符集。

import java.util.Map;
import java.nio.charset.Charset;
import java.util.Set;
public class Main {
 public static void main(String[] args) {
 Map<String, Charset> map = Charset.availableCharsets();
 Set<String> keys = map.keySet();
 System.out.println("Available Character Set Count: " + keys.size());
 for (String charsetName : keys) {
 System.out.println(charsetName);
 }
 }
}
 

文章来源:智云一二三科技

文章标题:Java字符集

文章地址:https://www.zhihuclub.com/192230.shtml

关于作者: 智云科技

热门文章

网站地图