文档章节

Java IO流 序列列一:字符编码

哈鼎
 哈鼎
发布于 2014/11/09 14:48
字数 388
阅读 178
收藏 2

1. 字符编码

先来看一下不同的字符编码

String s = "爪哇ABC";

1.1 utf-8编码

utf8编码:中文占用3个字节,英文占用1个字节

byte[] bytes = s.getBytes("utf-8");

         for(byte b : bytes){

         //把字节(转换成了int)以16字节的方式显示

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

     }

     System.out.println();//换行

     输出:e6  85  95  e8  af  be  41  42  43

1.2 gbk编码

gbk编码:中文占用2个字节,英文占用1个字节

byte[] bytes2 = s.getBytes("gbk");

     for (byte b : bytes2) {

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

     }

     System.out.println();

     输出:c4  bd  bf  ce  41  42  43

1.3 utf-16be编码

utf-16be编码是Java的编码格式,中文占用2个字节,英文中文占用2个字节

byte[] bytes3 = s.getBytes("utf-16be");

     for (byte b : bytes3) {

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

     }

     System.out.println();

     输出:61  55  8b  fe  0  41  0  42  0  43

1.4 乱码问题

造成乱码问题的原因很简单,是因为编解码采用的字符编码不一致造成的。如:上面的bytes3字节数据是utf-16be格式的字节序列,如果解码的时候用utf-8的话,就会出现乱码。

String str1 = new String(bytes3);

     System.out.println(str1);

     输出:aU��

如何解决乱码问题呢? 方法也很简单,就是让编解码采用的字符编码一致即可。

String str2 = new String(bytes3, "utf-16be");

     System.out.println(str2);

1.5 文本文件

      * 文本文件就是字节序列,可以是任意编码的字节序列

      * 如果在中文机器上创建文本文件,那么该文本文件只认识ANSI编码

© 著作权归作者所有

共有 人打赏支持
哈鼎
粉丝 4
博文 20
码字总数 7646
作品 0
深圳
关于 Java IO(二):从面向字节到面向字符

在上一篇文章中,我们以面向字节的输入为例,介绍了 Java 中 IO 的结构。在这篇文章中,主要介绍面向字节的输入输出是怎么转换到面向字符的输入输出的。 面向字符的输入输出指的是输入输出的...

Happioo
04/09
0
0
JAVASE之JAVAI/O流篇

一 Java IO IO流用来处理设备之间的数据传输。 Java程序中,对于数据的输入/输出操作以”流(stream)” 的方式进行。 java.io包下提供了各种“流”类和接口,用以获取不同种类的数据,并通过标...

刘信坚
07/30
0
0
java基础io流——配角也风流(不求甚解)

本章简单介绍几个常见的io流派生。 1:数据操作流(操作基本类型数据的流)(理解) 代码示例: 2:内存操作流(理解) 用于处理临时存储信息的,程序结束,数据就从内存中消失。 代码示例: 注:查看...

潇潇漓燃
05/30
0
0
Properties-转换流-打印流-序列化和反序列化-Commons-IO工具类

一.Properties 类(java.util) 概述:Properties 是一个双列集合;Properties 属于map的特殊的孙子类;Properties 类没有泛型,properties集合的key和value都是固定的数据类型 (String),该集合提供...

老胡2015
06/26
0
0
Java中的字符集编码入门(五)

如果你是JVM的设计者,让你来决定JVM中所有字符的表示形式,你会不会允许使用各种编码方式的字符并存? 我想你的答案是不会,如果在内存中的Java字符可以以GB2312,UTF-16,BIG5等各种编码形...

Java开发者
2010/05/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

【七】组合Action

本章描述了常用定义Action的方法。 自定义action builders 我们在action一章已经看过如何声明一个action——有request parameter、无request parameter、有body parser等等。你可以在 asynch...

Landas
29分钟前
0
0
Spring Boot实战之基础回顾

本文作者: 吴伟祥 本文链接: https://wuweixiang.cn/2018/08/21/Spring-Boot实战之基础回顾/ 版权声明: 本博客所有文章除特别声明外均为原创,采用CC BY-NC-SA 4.0 许可协议。转载请在文章开...

吴伟祥
29分钟前
0
0
OAuth认证开发

提示: 以下测试是基于项目安装成功,初始化数据库(initial_db.ddl, oauth.ddl, initial_data.ddl)后的测试, 也可在页面上点击"client_details"菜单里进行测试 方式1:基于浏览器 (grant_type=...

舒文joven
38分钟前
1
0
第二章-对象及变量的并发访问-第二篇

锁对象的改变 请阅读如下代码 public class MainClass { private String lock = "123"; public void printStringB() { try { synchronized (lock) { ......

简心
42分钟前
0
0
日志中记录代理IP以及真实客户端、apache只记录指定URI的日志

apache 日志中记录代理IP以及真实客户端 默认情况下log日志格式为: LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined 其中%h 是记录访问者的IP,如果在web的前...

李超小牛子
50分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部