Java NIO - CharSet(字符集)

Java NIO - CharSet(字符集) 首页 / Nio入门教程 / Java NIO - CharSet(字符集)

Java中,每个字符都有一个unicode代码单元,该代码单元由JVM内部处理。因此Java NIO包定义了一个名为Charset的抽象类,主要用于对charset和UNICODE进行编码和解码。

标准字符集

Java中受支持的字符集如下所示。

  • US-ASCII        - 七位ASCII字符。

  • ISO-8859-1     - ISO拉丁字母。

  • UTF-8              - 这是8位UCS转换格式。

  • UTF-16BE       - 这是16位UCS转换格式,具有大字节序。

  • UTF-16LE       - 这是具有低字节序的16位UCS转换。

  • UTF-16            - 16位UCS转换格式。

重要函数

  • forName()         - 此方法为给定的字符集名称创建一个字符集对象。

  • displayName() - 此方法返回给定字符集的规范名称。

  • canEncode()     - 此方法检查给定的字符集是否支持编码。

  • decode()            - 此方法将给定字符集的字符串解码为Unicode字符集的字符缓冲区。

  • encode()            - 此方法将Unicode字符集的字符缓冲区编码为给定字符集的字节缓冲区。

Charset示例

以下示例说明了Charset类的重要方法。

链接:https://www.learnfk.comhttps://www.learnfk.com/java-nio/java-nio-charset.html

来源:LearnFk无涯教程网

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.";
      //将给定字符集中的字节缓冲区转换为 unicode 中的字符缓冲区
      ByteBuffer byteBuffer = ByteBuffer.wrap(str.getBytes());
      CharBuffer charBuffer = charset.decode(byteBuffer);
      //将 unicode 中的字符缓冲区转换为给定字符集中的字节缓冲区
      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.

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

朱赟的技术管理课 -〔朱赟〕

玩转webpack -〔程柳锋〕

Java业务开发常见错误100例 -〔朱晔〕

Selenium自动化测试实战 -〔郭宏志〕

Go 并发编程实战课 -〔晁岳攀(鸟窝)〕

零基础入门Spark -〔吴磊〕

徐昊 · TDD项目实战70讲 -〔徐昊〕

快手 · 移动端音视频开发实战 -〔展晓凯〕

AI大模型企业应用实战 -〔蔡超〕

好记忆不如烂笔头。留下您的足迹吧 :)