zoukankan      html  css  js  c++  java
  • 笔记:I/O流-字符集

    Java 库的 java.nio 包用 Charset 类统一了对字符集的转换,支付姐建立了两个字节Unicode码元序列与使用本地字符编码方式的字节序列之间的映射,Charset类使用的时由IANA字符集注册中心标准化的字符集名称,为了兼容其他的命名惯例,每个字符集都可以拥有许多别名,可以调用 aliases 方法返回由别名构成的 Set 对象,示例代码如下:

    Charset charset = Charset.forName("utf-8");

                    System.out.println("utf-8 charset");

                    Set<String> aliases = charset.aliases();

                    for (String a : aliases) {

                            System.out.println("aliase is " + a);

                    }

    为了确定在某个特定实现中哪些字符集是可用的,可以调用静态方法 avaliableCharsets 方法,示例代码如下:

    Map<String, Charset> charsetMap = Charset.availableCharsets();

             for (String c : charsetMap.keySet()) {

                  System.out.println(c);

            }

    如果某个字符不能被字符集表示,他将被转换为?,一旦有了字符集就可以使用他在包含Unicode码元的Java 字符串和编码而成的字节序列之间进行转换,下面是如何编码Java 字符串的代码:

            String str = "受到法律框架dsfjkl23";

            // 编码字符串到Byte数组

            ByteBuffer buffer = charset.encode(str);

            byte[] bytes = buffer.array();

            for (byte b : bytes) {

                   System.out.print(Integer.toHexString(b & 0xff) + " ");

            }

            System.out.println();

            // 将Byte数组解码为字符串

            ByteBuffer decodeBuffer = ByteBuffer.wrap(bytes);

            CharBuffer charBuffer = charset.decode(decodeBuffer);

            System.out.println(charBuffer.toString());

       

  • 相关阅读:
    [C语言] 交换排序之冒泡排序的特性及实现
    [C语言] 选择排序之鸡尾酒排序的特性及实现
    [C语言] 选择排序之直接选择排序的特性及实现
    计蒜客 蓝桥杯模拟 快速过河
    计蒜客 蓝桥杯模拟 瞬间移动 dp
    计蒜客 蓝桥杯模拟 充话费
    计蒜客 蓝桥杯模拟二 区间合并 打扫教室
    商品类目短文本分类总结
    SpringBoot项目创建及入门基础
    Joyful HDU
  • 原文地址:https://www.cnblogs.com/li3807/p/6804281.html
Copyright © 2011-2022 走看看