java 文件的编码 问题

简介:
复制代码
package com.io;

public class Encodedemo {

    public static void main(String[] args)throws Exception{
        // TODO Auto-generated method stub
        String s ="中国ABC";
        byte[] bytes1 = s.getBytes();//转换成字节序列用的是项目默认的字节编码
        for(byte b:bytes1){
            //把字节转换成int 以16进制的方式显示
            System.out.print(Integer.toHexString(b&0xff)+" ");
        }
        System.out.println();
        byte[] bytes2 = s.getBytes("gbk");
        //gbk编码中文占用2个字节,英文占用1个字节
        for(byte b:bytes2){
            //把字节转换成int 以16进制的方式显示
            System.out.print(Integer.toHexString(b&0xff)+" ");
        }
        
        System.out.println();
        byte[] bytes3 = s.getBytes("utf-8");
        //utf-8编码中文占用3个字节,英文占用1个字节
        for(byte b:bytes3){
            //把字节转换成int 以16进制的方式显示
            System.out.print(Integer.toHexString(b&0xff)+" ");
        }
        //java 是双字节编码 utf-16be
        //utf-16be中文占用2个字节,英文占用2个字节
        System.out.println();
        byte[] bytes4 = s.getBytes("utf-16be");
        //utf-8编码中文占用3个字节,英文占用1个字节
        for(byte b:bytes4){
            //把字节转换成int 以16进制的方式显示
            System.out.print(Integer.toHexString(b&0xff)+" ");
        }
        System.out.println();
        /*
         * 当你的字节序列是某种编码是,这个时候想把字节序列变成
         * 字符串,也需要用这种编码方式,否者会出现乱码
         */
        String str1 = new String(bytes4);
        System.out.println(str1);
        String str2 = new String(bytes4,"utf-16be");
        System.out.println(str2);
        /*
         * 文本文件 就是字节序列
         * 可以是任意编码的字节序列
         * 如果我们在中文机器上直接创建文本文件  直接创建
         * 那么该文本文件只认识ANSI编码
         * 联通、联这是一种巧合,他们正好符合了utf-8编码的规制
         */
    }
    

}
复制代码

 

目录
相关文章
|
8天前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之在使用MaxCompute的Java SDK创建函数时,出现找不到文件资源的情况,是BUG吗
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
24 0
|
11天前
|
存储 Java
java用base64编码案例
Java Base64编码示例:导入`java.util.Base64`,设置字符串`originalString`,使用`Base64.getEncoder().encodeToString()`编码并存储到`encodedString`,打印编码后字符串。解码用`Base64.getDecoder().decode()`。
19 0
|
13天前
|
Java Unix Windows
|
1天前
|
Arthas 安全 Java
java服务报错 FileNotFoundException:打开的文件过多
java服务报错 FileNotFoundException:打开的文件过多
6 0
|
4天前
|
Oracle Java 关系型数据库
windows 下 win11 JDK17安装与环境变量的配置(配置简单详细,包含IJ中java文件如何使用命令运行)
本文介绍了Windows 11中安装JDK 17的步骤,包括从官方网站下载JDK、配置环境变量以及验证安装是否成功。首先,下载JDK 17的安装文件,如果没有Oracle账户,可以直接解压缩文件到指定目录。接着,配置系统环境变量,新建`JAVA_HOME`变量指向JDK安装路径,并在`Path`变量中添加。然后,通过命令行(cmd)验证安装,分别输入`java -version`和`javac -version`检查版本信息。最后,作者分享了如何在任意位置运行Java代码,包括在IntelliJ IDEA(IJ)中创建的Java文件,只需去掉包声明,就可以通过命令行直接运行。
|
6天前
|
存储 监控 Java
如何在Java中实现等待文件修改后再读取数据的功能?
如何在Java中实现等待文件修改后再读取数据的功能?
14 0
|
6天前
|
存储 Java 数据格式
Java实战:轻松掌握文件重命名与路径提取技巧
Java实战:轻松掌握文件重命名与路径提取技巧
15 0
|
6天前
|
Java
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
33 0
|
7天前
|
Java Spring
Java 效率编码 必备插件 Lombok 让代码更优雅
该内容是一个关于Lombok插件的教程摘要:介绍了Lombok用于减少Java开发中的模板代码,提升效率;讲解了如何在IntelliJ IDEA中安装Lombok插件,以及在pom.xml中添加依赖;并提到了@Data注解能自动生成getter/setter、equals、hashCode和toString方法,@Slf4j注解自动处理日志,@Builder用于构建对象,以及@AllArgsConstructor和@NoArgsConstructor注解生成构造函数。还鼓励探索更多Lombok的注解用法。
|
9天前
|
存储 Java Linux
【Java EE】 文件IO的使用以及流操作
【Java EE】 文件IO的使用以及流操作