java中的字节编码

来源:互联网 发布:淘宝销量怎么算 编辑:程序博客网 时间:2024/06/05 14:22
package com.imooc.io;


import java.io.UnsupportedEncodingException;


public class EncodeDemo {


public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
String s = "慕课ABC";
//装换成字节序列用的是项目默认的编码gbk
byte[] bytes1 = s.getBytes();
for(byte b:bytes1)
{
//把字节(转换成了int)以16进制的方式显示
//& 0xff的作用是留下前面的8位,将前面的24为全部置位为零。
System.out.println(Integer.toHexString(b & 0xff)+" ");
}
System.out.println();
byte[] bytes2 = s.getBytes("gbk");
//gbk编码中文占用两个字节,英文占用一个字节
for(byte b:bytes2)
{
System.out.println(Integer.toHexString(b & 0xff)+" ");
}
System.out.println();
byte [] bytes3 = s.getBytes("utf-8");
//在utf-8编码中中文占用3个字节,英文占用一个字节
for(byte b:bytes3)
{
System.out.println(Integer.toHexString(b & 0xff)+" ");
}
//java是双字节编码utf-16be,中文占用两个字节,英文占用两个字节
//当你的字节序列是某种编码时,这时候想把字符序列转换成字符串
//也需要用这种编码方式,否则会出现乱码问题。
byte[] bytes4 = s.getBytes("utf-16be");
for(byte b:bytes4)
{
System.out.print(Integer.toHexString(b & 0xff)+" ");
}
String str1 = new String(bytes4,"utf-16be");
//用默认的编码
System.out.println(str1);
/*
* 文本文件就是字节序列,可以是任意编码的字节序列
* 如果我们在中文机器上直接创建文本文件
* 那么该文本文件默认以ansi编码来保存文本文件
*/
}


}
0 0
原创粉丝点击