关于UNICODE编码介绍

JAVA程序运行时,在JAVA内存中字符的存储方式是以UTF-16编码格式存储的,字符串底层是char数组,所以也是UTF-16编码。

可以用String的codePoint(index)方法查看当前字符在运行时对应的unicode码。因为像GBK等这种编码并没有实现unicode,所以

GBK等编码与UTF-16是需要做转换的,可以通过charset.forName("")获取指定的编码转换类去转换即可。

在进行文件编辑时,文件是有编码格式的。如果编辑器以同样的编码格式打开则是正常显示。如果以另一种不兼容编码格式打开,因为编码不同,所以读取显示会乱码。因为编码顺序没有乱,所以实际文件内容是不会改变,只要用相同编码的编辑器打开即可。

如果在修改编码后,对文件内容进行修改,此时在文件当前位置处的内容编码方式是按照当前编辑器的编码来保存的。如果在把编辑器编码格式还原回去,此时修改部分的内容可能会因为编码不一样乱码,也有可能导致修改后面的所有内容都跟着乱码。

 

例如在 XML、HTML等等文件中设置的编码格式,这个编码格式是在解析这个文件时会按照这个格式进行解析。所以一定要设置编辑器的编码格式与文件里的编码格式一致。例如文件编辑时以GBK存储,在解析时按照UTF-8解析就会出现错误。

在JAVA中char[]时按照一个字符一个字符进行处理的。编码可以看成,将字符转换为字节,解码就是讲字节转换为字符。

因为在网络上,或者I/O等最终都是以字节方式进行传输的。而作为应用程序,需要的可能就是字符而不是字节,所以需要进行解码才能够使用。可以类比加密和解密的过程。

 

https://www.ibm.com/developerworks/cn/java/unicode-programming-language/index.html

你可能感兴趣的:(关于UNICODE编码介绍)