编码问题
Posted shacry
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编码问题相关的知识,希望对你有一定的参考价值。
## 一.Unicode和UCS字符集
## 二.utf编码
### a。UTF-8
* UTF8本身并无bom,除微软外,其它系统并不识别带bom的utf8
* UTF8带BOM只是微软自身,用来区分ANSI,大尾UTF16和小尾UTF16
* UTF8带BOM EFBB BF
### b。UTF-16
* UTF16是两个字节来存储,但系统一般是一字节的存储,所以分不清AEEA和EAAE,有个先后序的问题,所以要带BOM
* 微软自身问题,将unicode当做小尾utf16,带bom的utf8
* 大尾UTF-16以FEFF开头,小尾以FFFE开头
## 三.java
* javac -encoding 是告诉编译器源代码文件是用什么编码格式写的,默认使用系统默认编码格式,比如微软系统默认是gb2312,你的源代码文件却是用utf8写的,那不指定的话,就会出问题
* class文件,是以CAFE BABE开头的,不是unicode
* java虚拟机内部就是小尾utf16的
以上是关于编码问题的主要内容,如果未能解决你的问题,请参考以下文章