当前位置:网站首页>NIO字符集和Charset
NIO字符集和Charset
2022-07-22 10:01:00 【华为云】
目录:
java Nio(一) : Nio 和Io 的区别
java Nio(二): Buffer(缓冲区)的数据存取
java Nio(三):直接缓冲区 和 非直接缓冲区
java Nio(四) :通道(Channel)
java Nio(五) : 字符集:CharSet
字符集:java默认使用 Unicode 字符集,但是很多操作系统并不会使用 Unicode 字符集,那么当从系统中读取数据到java程序时,就会出现乱码等问题。
JDK 1.4 提供了CharSet 来处理字节序列和字符序列之间的转换关系,该类包含了用于创建解码器 和 编码器 的方法,还提供了获取 CharSet 所支持的字符集的方法,CharSet 是不可变的。
/** * 字符集:Charset * 编码(Encode) : 字符串 -> 字节数组 * 解码(Decode) : 字节数组 -> 字符串 * * 当要保存文本文件时,程序必须把文件中的每个字符翻译成二进制文件。 * 当需要读取文件时程序必须把二进制序列转换为一个个的字符。 */
1·,获取java中所支持的字符集:
//获取java所支持的字符集。private static void test1(){ Map<String, Charset> map = Charset.availableCharsets(); for(Map.Entry<String,Charset> m : map.entrySet()){ System.out.println(m.getKey()+" = "+m.getValue()); }}
2,字符 和 字节 按指定的字符集转换
//字符 和 字节 按指定的字符集转换private static void test2(){ Charset gbk = Charset.forName("GBK"); //获取编码器 CharsetEncoder ce = gbk.newEncoder(); //获取解码器 CharsetDecoder cd = gbk.newDecoder(); //创建缓冲区 CharBuffer cBuffer = CharBuffer.allocate(1024); cBuffer.put("我们好像在哪见过!"); cBuffer.flip();//切换为可读 try { //对字符串进行编码 ByteBuffer encode = ce.encode(cBuffer); System.out.println("编码"); for (int i = 0; i < encode.limit(); i++) { System.out.print(encode.get()+" "); } //将字节解码为字符串 encode.flip(); CharBuffer decode = cd.decode(encode); System.out.println("\n解码后:"+decode.toString()); } catch (CharacterCodingException e) { e.printStackTrace(); }}
decode(ByteBuffer bb) : 将字节序列转换 为 字符序列。
encode(CharBuffer cb) : 将字符序列转换 为 字节序列。
encode(String str) : 将String 中的福中序列转换为字节序列。
边栏推荐
- Friend functions and friend classes
- Definition of derived classes
- Pytest interface automated testing framework | pytest parameterization
- CV520国产替代CI520非接触式读写器读卡芯片
- Sentry nodestore_node 表中的数据查看
- Force deduction solution summary 1260 two dimensional mesh migration
- Laravel solves [1045] access denied for user 'homestead' @ 'localhost' (usin g password: yes)
- Connectivity of digraph
- 问一下,我用flinkCDC读取MySQL的binlog为什么datetime类型字段会早8个小时?
- C# winform excel根据当前选中内容,自动插入/编辑批注
猜你喜欢
随机推荐
关于红队方面的学习资料
Force deduction solution summary 648 word replacement
你经常遇到的IO模型
C# winform excel根据当前选中内容,自动插入/编辑批注
Pytest interface automation test framework | pytest assertion
有向图的连通性
派生类的构造函数和析构函数
Force deduction solution summary 522- longest special sequence II
NFT数字藏品系统搭建—app开发
SQL Design Teaching Management Library
Definition of derived classes
Glibc source code analysis
管理的艺术-通过领导力驱动软件研发效能提升
mysql数据库
[take you to learn C, take you to fly] branch structure in Chapter 3 of C language programming (3rd Edition) of Zhejiang University Edition (exercise 3)
他的一只鸟,卖了6000万 ——明清大家八大山人藏品发售
Jackson 解析 JSON 详细教程
CCF 1-2题答题记录(1)
如何不获取root权限使用第三方主题:MIUI篇
DNSmasq 安装与配置