java Charset(字符集)类的操作

java Charset(字符集)类的操作jdk1 4 提供了 Charset 类来处理字节序列和字符序列 字符串 的转换关系 使用 Charset 类能够创建编码器和解码器 首先 获取 Charset 对象需要提供字符集的名称 如 GBK 我们通过 Charset 类打印 JDK 支持的所有字符集 获取 Java 支持的全部字符集 SortedMap String Charset map Charset availableCha String Charset

jdk1.4提供了Charset类来处理字节序列和字符序列(字符串)的转换关系,使用Charset类能够创建编码器和解码器。

首先,获取Charset对象需要提供字符集的名称,如GBK。我们通过Charset类打印JDK支持的所有字符集。

// 获取Java支持的全部字符集

SortedMap 
  
    map = Charset.availableCharsets(); for (String alias : map.keySet()) { // 输出字符集的别名 System.out.println(alias); } 
  

接下来使用编码器将CharBuffer中的字符序列转换为字节序列ByteBuffer。

CharBuffer和ByteBuffer是java NIO中的IO操作类。 // 创建简体中文对应的Charset Charset charset = Charset.forName("GBK"); // 获取charset对象对应的编码器 CharsetEncoder charsetEncoder = charset.newEncoder(); // 创建一个CharBuffer对象 CharBuffer charBuffer = CharBuffer.allocate(20); charBuffer.put("CSDN-专业IT技术社区"); charBuffer.flip(); // 将CharBuffer中的字符序列转换成字节序列 ByteBuffer byteBuffer = charsetEncoder.encode(charBuffer); // 循环访问ByteBuffer中的每个字节 for (int i = 0; i < byteBuffer.limit(); i++) { System.out.print(byteBuffer.get(i) + " "); } 

然后使用解码器将ByteBuffer中的字节序列转换为字符序列CharBuffer(字符串)。

// 创建简体中文对应的Charset Charset charset = Charset.forName("GBK"); // 获取charset对象对应的编码器 CharsetDecoder charsetDecoder = charset.newDecoder(); // 创建一个ByteBuffer对象 ByteBuffer byteBuffer = ByteBuffer.allocate(50); byteBuffer.put("CSDN-专业IT技术社区".getBytes("GBK")); byteBuffer.flip(); // 将ByteBuffer的数据解码成字符序列 System.out.println(charsetDecoder.decode(byteBuffer)); --------------------- 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2026年3月19日 上午9:21
下一篇 2026年3月19日 上午9:22


相关推荐

  • NVL()函数

    NVL()函数NVL()函数是Oracle中的一个函数,NVL()函数的功能是实现空值的转换。NVL()函数的功能是实现空值的转换。例如NVL(string1,replace_with)中:当第一个参数(string1)为空时,返回第二个参数(replace_with);当第一个参数(string1)不为空时,则返回第一个参数(string1)。NVL()函数的第一个参数和第二个参数类型必须相同,或…

    2022年7月13日
    17
  • 学习web前端,初学者应该用什么编程软件

    学习web前端,初学者应该用什么编程软件Web前端开发最常见的编程软件有以下几种: DreamWeaver是一款老牌前端开发工具,功能强大且组件丰富,作为前端开发的一款利器被广泛使用。DreamWeaver是一款可视化的前端开发工具,一边写代码一边就能看到效果,所以使用起来还是比较方便的。但是DreamWeaver的缺点就是比较耗费系统资源,这也许是IDE类产品的通病。 Hbuilder是最近几年被广泛使用的一款前端开发…

    2022年5月23日
    53
  • SUSE Linux 11里Nginx+Resin+JSP+Memcached+MySQL安装配置整合

    SUSE Linux 11里Nginx+Resin+JSP+Memcached+MySQL安装配置整合PS:因一客户的运营环境需求,需要nginx和resin整合,nginx负责处理静态页面部份,resin负责处理动态JSP部份。Resin是CAUCHO公司的产品,是一个非常流行的applicationserver,对servlet和JSP提供了良好的支持,性能也比较优良,resin自身采用JAVA语言开发,而且Resin速度比Tomcat快,稳定性也比Tomcat好。关于各软件版本,我使用

    2022年5月12日
    55
  • Android退出应用程序方法总结[通俗易懂]

    Android退出应用程序方法总结[通俗易懂]Android退出应用程序方法总结在Android开发中,我们运行了应用程序后,都需要退出应用的,那么该如何退出应用,又都有哪些实现方式呢?今天就为大家整理分享一些退出应用程序的方法,一起来看看吧!更新内容Ver:v1任务管理器方法补充 新增监听式退出方法Ver:v2任务管理器方法修正 新增销毁任务栈退出方法1.finish方法finish();该方法只是结束当前Activity,系统将最上面的Activity移出了栈,并没有清理占用的资源。如果栈内有很多Activ

    2022年7月17日
    18
  • 什么是用户态和内核态的区别_内核态和用户态的概念

    什么是用户态和内核态的区别_内核态和用户态的概念什么是用户态和内核态从图上我们可以看出来通过系统调用将Linux整个体系分为用户态和内核态(或者说内核空间和用户空间)。那内核态到底是什么呢?其实从本质上说就是我们所说的内核,它是一种特殊的软件程序,特殊在哪儿呢?控制计算机的硬件资源,例如协调CPU资源,分配内存资源,并且提供稳定的环境供应用程序运行。用户态就是提供应用程序运行的空间,为了使应用程序访问到内核管理的资源例如CPU,内存,I/O。内核必须提供一组通用的访问接口,这些接口就叫系统调用。为什么要区分内核态和用户态往往我们的系统的资源是

    2025年12月5日
    6
  • Oracle安装闪退问题总结

    Oracle安装闪退问题总结今天是在 Windows2008 上装 Oracle 解压后 运行 setup exe 发生闪退一 Oracle 安装时会在 C Users DELL 登陆的用户 AppData Local Temp 里创建一个文件夹 名字为 2 查看这里有没有这个文件夹 出现错误原因 C Users DELL AppData Local Temp 里有一个 2 的文件 但是不是文件夹类型 所以 Oracle 安装时

    2026年3月17日
    1

发表回复

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

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