一、Java编码相关的概念
一、Java编码相关的概念
Java编码的概念可以从下面5点来理解和分析
1、文本文件存放在系统中的是某一编码方式下该字符串的编码
2、内存中的字符串是以字符数组的形式存储:char[],其中字符数组中存储的内容为Unicode编码,既UTF-16编码
3、ISO8859-1 进行解码不会有信息丢失,但是对一些类似包含中文的char[]编码会有信息丢失。因为
ISO8859-1 编码将字节数组解码为字符串的时候是一个字节一个字节进行解码的所以不会有信息丢失,当对包含中文的char[]数组进行编码的时候,由于中文的Unicode编码超出了ISO8859-1编码的范围(因为UTF-16编码是用两个字节,而ISO8859-1是用一个字节编码),所以会将超出范围的字符编码为?字符,这样就照成信息丢失。
4、字符在进行转换的时候都是以Unicode作为中介的,例如:需要将ISO8859-1编码的字符串转换成UTF-8编码的字符串,需要先将该字符串转换成Unicode字符串,然后在转换成UTF-8编码的字符串。如下图:
5、Unicode(统一码,万国码,单一码) 是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码。所以个人认为当使用InputStream 操作文本时,获取到的是文本某一编码方式下的字符集编码的字节数组。使用reader操作文本时是在InputStream获取到的字节数组解码后的字符串,只是解码用的编码如果没有具体指定的话,就会采用操作系统编码。
6、编码:将UTF-16编码转换成某一特定编码
7、解码:将某一特定编码转换成UTF-16编码
8、字符串在内存中是以字符数组的形式存储:char[],其中字符数组中存储的内容为Unicode编码,既UTF-16编码。所以内存中的字符串都是以UTF-16的编码形式存在的,只有在通过String.getBytes()的时候,才会将UTF-16编码的字节数组转换成某一特定编码的字节数组形式。所以只有byte[ ] 中的内容才是特定字符集的编码,而普通的字符串在程序和内存中都是UTF-16编码,明确这一点很重要。
相关推荐
java编码规范 java编码规范 java编码规范 java编码规范
华为JAVA编码规范,有不少可以借鉴的地方~
Java编码规范.doc Java编码规范.doc Java编码规范.doc Java编码规范.doc
华为JAVA编码规范.pdf
java编码规范考试题答案.doc
阿里巴巴java编码规范 ,Java 并发编程培训(阿里巴巴) 《阿里巴巴Java开发手册》,首次公开阿里官方Java代码规范标准。这套Java统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率、大大...
JAVA编码规范完全教程,内含国内主流大型JAVA项目开发编码详细规范说明,及国际大型公司JAVA编码规范详细说明,及编码的注意事项和因为不规范编码方式而可能产生的代码BUG,本文档是JAVA专业化编程的一把利器。
Java编码规范(Java Coding Standard) oiNSFT-BS-OT0105 V3.0 2005-5-11 东软集团有限公司 商用软件事业部 版权所有 中国 沈阳浑南高新技术产业开发区 东软软件园
Java编码规范(详细)Java编码规范(详细)Java编码规范(详细)Java编码规范(详细)Java编码规范(详细)Java编码规范(详细)
java编码规范
java编码注释 apidoc自动生成 myeclipse的模板写法
java 编码规范文档
JAVA编码规范培训
阿里JAVA编码规范
java编码规范.pdf
java编码规范 不错的资源。。。。。。。。
这是sun公司的Java编码规范,好的编码规范是编写可读性好的程序的关键,所以拿来和大家共享!
java编码规范,非常详细 每个switch-case语句都有最后一个default以确保处理了全集。switch中,每一条case分支必须使用break语句结束
Java 编码规范, chm版 ~~~~~~