Java中CharSet字符集

Java中CharSet字符集java nio charset 包中提供了 Charset 类 它继承了 Comparable 接口 还有 CharsetDecod CharsetEncod 编码和解码的类 它们都是继承 Object 类 Java 中的字符使用 Unicode 编码 每个字符占用两个字节 16 个二进制位 向 ByteBuffer 中存放数据的时候需要考虑字符的编码 从中读取的时候也需要考虑字符的编码方式 也就是编码和解码

java.nio.charset包中提供了Charset类,它继承了Comparable接口;还有CharsetDecoder、CharsetEncoder编码和解码的类,它们都是继承Object类。

Java中的字符使用Unicode编码,每个字符占用两个字节,16个二进制位,向ByteBuffer中存放数据的时候需要考虑字符的编码,从中读取的时候也需要考虑字符的编码方式,也就是编码和解码。

1.获取字符集有如下两种方式
 //返回指定的字符集CharSet Charset charset = Charset.forName("utf8"); //返回虚拟机默认的字符集CharSet Charset charset = Charset.defaultCharset();
2.接下来我们使用字符集CharSet创建一个编码器和一个解码器
 //编码器 CharsetEncoder encoder = charset.newEncoder(); //解码器 CharsetDecoder decoder = charset.newDecoder();
3.使用编码器和解码器解析数据
//编码,传入CharBuffer ByteBuffer bytebuffer = encoder.encode(in); //解码,传入ByteBuffer CharBuffer charbuffer = decoder.decode(in); 
4.具体使用案例
 public static void main(String[] args) { Charset charset = Charset.forName("utf8"); System.out.println(charset.name()+"--"+charset.canEncode()); //返回一个包含该字符的别名,字符集的别名是不可变的 Set 
   
   set = charset 
   .aliases() 
   ; Iterator 
   
     it = 
    set 
    .iterator() 
    ; while(it 
    .hasNext()) { System 
    .out 
    .println(it 
    .next()) 
    ; } System 
    .out 
    .println( 
    "----------编码----------------") 
    ; ByteBuffer buffer = charset 
    .encode( 
    "sdf") 
    ; System 
    .out 
    .println(buffer) 
    ; System 
    .out 
    .println( 
    "缓冲区剩余的元素数--"+buffer 
    .remaining()) 
    ; while(buffer 
    .hasRemaining()) { System 
    .out 
    .println((char)buffer 
    .get()) 
    ; } System 
    .out 
    .println( 
    "缓冲区剩余的元素数--"+buffer 
    .remaining()) 
    ; System 
    .out 
    .println( 
    "----------解码----------------") 
    ; //清空缓冲区,将限制设置恢复,如果定义了标记,则将它们丢弃 buffer 
    .flip() 
    ; } 
    
  
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217632.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午9:08
下一篇 2026年3月18日 上午9:08


相关推荐

  • vmware虚拟机联网设置(win10自带虚拟机安装win7)

    1.右键“我的电脑”,选择“管理”,双击进入2.找到“”服务“”这个选项,双击进入服务3.找到如下两个服务,将这两个服务启动4.打开VMware软件,打开虚拟机的编辑=>虚拟网络配置器5.点击更改配置6.配置如下图所示,配置完后,点击确定7.随便点击一台已有虚拟机,在右侧的弹框中,选择编辑虚拟机配置8.配置如下图所示,网络适配器=>选择自定义特定虚拟网=…

    2022年4月12日
    103
  • MySQL使用SQL语句修改表名

    MySQL使用SQL语句修改表名MySQL中可以使用renametable这个SQL语句来修改表名。renametable这个SQL语句来修改表名的基本语法是:RENAMETABLE<旧表名>TO<新表名>;我们来把test表修改为test1表。1、首先查看一下当前数据库中有哪些表。mysql>showtables;+——————-+…

    2022年5月6日
    58
  • 大三Java后端暑期实习面经总结——Java基础篇

    大三Java后端暑期实习面经总结——Java基础篇博主现在大三在读 从三月开始找暑期实习 总结下了很多面试真题 希望能帮助正在找工作的大家 相关参考都会标注原文链接 尊重原创

    2025年8月9日
    5
  • java读取文件内容到字符串

    java读取文件内容到字符串方法一:使用BuffererReader.继承Reader类publicvoidfileRead()throwsException{Filefile=newFile("D:\\test.txt");//定义一个file对象,用来初始化FileReaderFileReaderreader=newFileReader(file);//…

    2022年7月15日
    29
  • 使用vagrant一键部署本地php开发环境(一)[通俗易懂]

    使用vagrant一键部署本地php开发环境(一)

    2022年2月8日
    47
  • java case 枚举_Java switch 枚举

    java case 枚举_Java switch 枚举Switch 中能够使用 int byte short char Enum String 当中 Enum 为 1 5 之后新增特性 String 为 java8 新增特性 本文介绍怎样在 Switch 中使用 Enum 类型 在 swtich 中使用 enum 不同于传统 switch 的地方主要在两个显著的 非细节方面 案例 switch UserAgent FIREFOX case UserAgent IE fail

    2026年3月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号