编码gbk、utf-8、utf-16be的比较

package com.imooc.io;

public class EncodeDemo {

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

    }

}
时间: 2024-10-03 13:46:02

编码gbk、utf-8、utf-16be的比较的相关文章

解决 java “错误:编码GBK 的不可映射字符”

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46583279 public class HelloWorldwww{ public static void main(String args[]){ int num ; // 声明一个整型变量num num = 3 ; // 将整型变量赋值为3 // 输出字符串,这里用"+" 号连接变量 System.out.println("这是数字"+num);

java编码GBK的不可映射字符

编译java文件时,提示编码GBK的不可映射字符. 主要原因:windows 默认编码方式为GBK,用javac编译时,中文按照GBK解析,但是文件内容编码格式不是GBK. 解决:若编译单个文件指定编码格式就可以了 javac -encoding UTF-8 TestBinaryNum.java

javac编译 编码GBK的不可映射字符

使用命令行javac命令编译java文件, 提示错误:编码GBK的不可映射字符. 在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe会获得我们操作系统默认采用的编码格式. JDK根据操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),把源程序从默认编码格式转化为JDK内部默认的UNICODE格式放入内存中.然后把转换后的unicode格式的文件进行编译成.class类文件,此时.cl

使用Maven编译项目遇到——“maven编码gbk的不可映射字符”解决办法 ——转载

一.问题描述 今天在MyEclipse中使用Maven编译项目源代码时,结果如下了如下的错误 百思不得其解啊,java源代码在MyEclipse中显示是没有任何错误的,可是执行"maven install"命令编译项目时就会出现上述的错误,导致项目编译失败.这个问题还是第一次遇到,还好在这里http://capslk.iteye.com/blog/1419958看到了解决问题的办法. 二.解决办法 解决这个问题的思路: 在maven的编译插件中声明正确的字符集编码编码——编译使用的字符

maven异常解决:编码GBK的不可映射字符

直接将项目改为UTF-8编码,无效! 要通过修改pom.xml文件,告诉maven这个项目使用UTF-8来编译. 一.问题描述 今天在MyEclipse中使用Maven编译项目源代码时,结果如下了如下的错误 百思不得其解啊,Java源代码在MyEclipse中显示是没有任何错误的,可是执行"maven install"命令编译项目时就会出现上述的错误,导致项目编译失败.这个问题还是第一次遇到,还好在这里http://capslk.iteye.com/blog/1419958看到了解决问

彻底搞懂编码 GBK 和 UTF8

常用编码格式一览 首先来看一下常用的编码有哪些,截图自Notepad++.其中ANSI在中国大陆即为GBK(以前是GB2312),最常用的是 GBK 和 UTF8无BOM 编码格式.后面三个都是有BOM头的文本格式,UCS-2即为人们常说的Unicode编码,又分为大端.小端. 所谓BOM头(Byte Order Mark)就是文本文件中开始的几个并不表示任何字符的字节,用二进制编辑器(如bz.exe)就能看到了. UTF8的BOM头为 0xEF 0xBB 0xBF Unicode大端模式为 0

javadoc错误: 编码gbk的不可映射字符

在使用Eclipse进行javadoc的导出时,提示“编码 GBK 的不可映射字符”,应该就是中文注释Eclipse不认,需要在调用javadoc.exe的时候传递编码集告诉它采用什么编码去生成javadoc文档. 打开eclipse,project –> Export –> javadoc 一项一项的选你要输出javadoc的项目,最后一步中VM设置行中加入以下代码 -encoding utf-8 -charset utf-8 经过以上操作,输出的html代码不会发生“编码 GBK 的不可映

maven编译时候报"编码 GBK 的不可映射字符"

决这个问题的思路: 在maven的编译插件中声明正确的字符集编码编码——编译使用的字符集编码与代码文件使用的字符集编码一致!! 安装系统之后,一般中文系统默认字符集是GBK.我们安装的软件一般都继承使用操作系统的默认字符集. 所以在很多中文XP win7上开发的同学,在使用maven(mvn compile)编译项目的时候,就会出现“编码 gbk 的不可映射字符”: 这个是由于代码使用的UTF-8,而maven编译的时候使用的GBK的缘故. 通过修改pom文件,可以告诉maven这个项目使用UT

命令行编译java源文件提示 “编码GBK的不可映射字符” 及输出的中文变为乱码的解决方法

使用命令行编译运行java代码,编译时出现 “编码GBK的不可映射字符” 的错误提示,并且需输出的中文全部变为乱码,此时有两种解决方法: (方法一) 在输入 javac 命令时,额外输入 -encoding utf-8, 例如:如果编译的源文件名为 Test.java ,那么编译时原先只需输入 javac Test.java,而现在需要输入 javac -encoding utf-8 Test.java (方法二) 使用 EditPlus 软件编写代码时,通过修改相关设置然后保存文件即可,具体操