一、编码。(引用  百度百科

  编码是信息从一种形式或格式转换为另一种形式的过程也称为计算机编程语言的代码简称编码。用预先规定的方法将文字、数字或其它对象编成数码,或将信息、数据转换成规定的电脉冲信号。编码在电子计算机电视、遥控和通讯等方面广泛使用。编码是信息从一种形式或格式转换为另一种形式的过程。解码,是编码的逆过程。

二、程序中编码不一致。

  程序中  IO读取 文件,如果编码不一致,就会造成乱码的情况,

  执行以下代码  不同编码 , 输出的结果就会出现乱码情况。

  

        String a="未知的路上ABC";
byte[] bytea=a.getBytes("utf-8"); System.out.println("编码一致,输出结果");
String a1=new String(bytea);
System.out.println(a1); System.out.println("编码不一致,输出结果");
String a2=new String(bytea,"utf-16be");
System.out.println(a2);

  输出结果为:

    

三、不同编码 在内存中占用的字节。

  1、gbk编码。

    

        String s="未知ABC";
//gbk编码 中文占用两个字节,英文占用一个字节
byte[] bytes1=s.getBytes("gbk");
for (byte b:bytes1){
System.out.print(Integer.toHexString(b&0xff)+" ");
}

  最后输出结果为:ce b4 d6 aa 41 42 43

  可以看出 gbk编码下, 中文占用两个 字节,英文占用一个字节。

  2、utf-8编码。

        //utf-8编码  中文占用3个字节,英文占用一个字节
byte[] bytes2=s.getBytes("utf-8");
for (byte b:bytes2){
System.out.print(Integer.toHexString(b&0xff)+" ");
}

  最后输出结果为:e6 9c aa e7 9f a5 41 42 43

  可以看出 utf-8编码下, 中文占用三个 字节,英文占用一个字节。

  3、utf-16be 编码

        //utf-16be 编码 中文只能用2个字节,英文占用2 个字节
byte[] bytes3=s.getBytes("utf-16be");
for (byte b:bytes3){
System.out.print(Integer.toHexString(b&0xff)+" ");
}

  最后输出结果为:67 2a 77 e5 0 41 0 42 0 43

  可以看出 utf-16be 编码下, 中文占用两个 字节,英文占用两个字节。

  

四、总结。

  

  1、当你的字节序列式某种编码时,这个时候想把字节序列变成字符串。也需要用这种编码方式,否则会出现乱码。

  2、文本文件,就是字节序列,可以是任意编码的字节序列,如果我们在中文机器上创建文件,那么该文本则只认识ansi编码。

  

JAVA—编码问题的更多相关文章

  1. java编码过滤器

    1.java编码过滤器的作用: java过滤器能够对目标资源的请求和响应进行截取,过滤信息执行的优先级高于servlet. 2.java过滤器的使用: (1)编写一个普通的java类,实现Filter ...

  2. java中文乱码解决之道(四)-----java编码转换过程

    前面三篇博客侧重介绍字符.编码问题,通过这三篇博客各位博友对各种字符编码有了一个初步的了解,要了解java的中文问题这是必须要了解的.但是了解这些仅仅只是一个开始,以下博客将侧重介绍java乱码是如何 ...

  3. 资料推荐--Google Java编码规范

    之前已经推荐过Google的Java编码规范英文版了: http://google-styleguide.googlecode.com/svn/trunk/javaguide.html 虽然这篇文章的 ...

  4. Java编码规范

    1. Java命名约定 除了以下几个特例之外,命名时应始终采用完整的英文描述符.此外,一般应采用小写字母,但类名.接口名以及任何非初始单词的第一个字母要大写.1.1 一般概念 n 尽量使用完整 ...

  5. 10个精妙的Java编码最佳实践

    这是一个比Josh Bloch的Effective Java规则更精妙的10条Java编码实践的列表.和Josh Bloch的列表容易学习并且关注日常情况相比,这个列表将包含涉及API/SPI设计中不 ...

  6. Eclipse formater(google Java 编码规范)

    1. 谷歌Java编码规范 http://google-styleguide.googlecode.com/svn/trunk/javaguide.html 2. 下载配置文件: https://co ...

  7. 【JAVA编码专题】总结

    第一部分:编码基础 为什么需要编码:用计算机看得懂的语言(二进制数)表示各种各样的字符. 一.基本概念 ASCII.Unicode.big5.GBK等为字符集,它们只定义了这个字符集内有哪些字符,以及 ...

  8. 【JAVA编码专题】深入分析 Java 中的中文编码问题

    http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/ 几种常见的编码格式 为什么要编码 不知道大家有没有想过一个问题,那就是为什么 ...

  9. java中文乱码解决之道(四)—–java编码转换过程

    原文出处:http://cmsblogs.com/?p=1475 前面三篇博客侧重介绍字符.编码问题,通过这三篇博客各位博友对各种字符编码有了一个初步的了解,要了解java的中文问题这是必须要了解的. ...

  10. Java 编码 字符集

    Java 编码 字符集 @author ixenos 1.   字符集 a)    字符集建立了两字节Unicode码元序列与使用本地字符编码方式的字节序列之间的映射. b)    为了兼容其它命名, ...

随机推荐

  1. http和https(转)

    一.HTTP协议 最近看了一些网络通信方面的书籍,研究了一下 HTTP 和 TCP/IP,有了一些新的收获和理解,在这里做个归纳和总结. (1)什么是HTTP协议 HTTP (HyperText Tr ...

  2. ES6系列_5之字符串模版

    1.字符串模板对比引入: (1).之前我们也可以使用JavaScript输出模版字符串,通常是下面这样的: var restult= "姓名: <b>"+person. ...

  3. CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点 以下 ...

  4. svn 技巧

    参考:https://blog.csdn.net/wlccomeon/article/details/20398923

  5. delphi 触摸 手势

    delphi手势,左右滑动, 控件的OnGesture事件写代码. 放一个TGestureManager控件,设置控件的touch属性为TGestureManager控件. 然后勾选控件的Touch& ...

  6. phpstorm 7.1 注册码

    phpstorm 7.1 注册码 EMBRACE ===== LICENSE BEGIN =====97393-12042010000004TIOFWznalqlK"vkzc2ilc8uub ...

  7. Redis Key操作

    [Redis Key操作] 1.GETSET key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value). 当 key 存在但不是字符串类型时,返回一个错 ...

  8. 单源最短路:Bellman-Ford算法 及 证明

    描述: 求图中某一点到其他任一点的最短距离. 操作: 1. 初始化 结果保存在一个dist数组里,源点的结果初始化为0,其他初始化为无穷大(如INT32_MAX). 2. 计算: 两重for循环,第一 ...

  9. mybatis框架入门程序:演示通过mybatis实现数据库的模糊查询操作

    1. mybatis的基本准备操作见我的上一篇博文:https://www.cnblogs.com/wyhluckdog/p/10149480.html 2. 根据用户名查询用户信息: (1)映射文件 ...

  10. CMD一般命令

    返回根目录:cd\ 回车 进入D盘:输入cd\ 回车,返回根目录,再输入d:回车,即可进入d盘(注意:字符都是英文字符) 进入D盘叫JDK的文件夹:如上面进入d盘后,输入:cd jdk 回车即可 进入 ...