java I/O流(1)编码
2016-07-05 11:12
453 查看
package cn.itstudy.encode; import java.io.UnsupportedEncodingException; public class EncodeDemo { public static void main(String[] args) { String s = "你好abc"; byte[] byte1 = s.getBytes(); //转换成字节序列用的是项目默认的编码,这里设置的编码是utf-8 //utf-8 中文编码3个字节,英文占用一个字节 for(byte b: byte1){ //把字节(转成了int)以十六进制的方式显示 System.out.print(Integer.toHexString(b&0xff)); //把bytezhuan成int,后8位前填24个0转成32位 } System.out.println(); byte[] byte2; try { //gbk中文占用两个字节,英文占用一个字节 byte2 = s.getBytes("gbk");//这里可以改编码格式 // for(byte b: byte2){ System.out.print(Integer.toHexString(b&0xff)); } } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(); //java是双字节编码utf-16be,中英文都占用两个 /* * 当你的字节序列是某种编码时,这时候想把字节序列变成字符串, * 也需要用这种编码方式,否则会出现乱码 */ byte[] byte4 = s.getBytes(); String str1 = new String(byte4); //用项目默认的编码 System.out.println(str1); //显示你好abc String str2; try { str2 = new String(byte4,"utf-16be"); //与字符编码不一致会出现乱码 System.out.println(str2); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } /* * 文本文件就是字节序列 * 可以是任意编码的字节序列 * 如果我们在中文机器上直接创建文本文件, * 那么该文本文件只认识ansi编码 */ } }
相关文章推荐
- Java单链表的实现代码
- 20160705_Java基础知识(访问权限)
- Ubuntu下安装JDK7(附Clojure下载)
- JAVA中抽象类和接口的区别
- Java类、属性、方法分类及修饰符整合
- Servlet基础知识总结
- Java单链表基本操作的实现
- java剧院管理系统,数据存储mysql
- eclipse设置新建jsp文件默认字符编码
- springMVC入门--传递参数的方式
- Spring常用注解
- java程序调用.net接口服务地址的写法
- Spring boot 下Freemarker的注解方式配置
- eclipse 相关
- JAVA中对BIO,NIO,AIO的理解
- Struts2中过滤器和拦截器的区别
- Java迷题:等于,还是不等于?
- java 当前系统时间的问题
- javax.ws.rs.NotAllowedException: No resource method found for POST, return 405 with Allow header
- java内存分配基础