标签:其它 识别 字节 使用 后序 编码问题 utf-16 字符集 gb2312
## 一.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的
标签:其它 识别 字节 使用 后序 编码问题 utf-16 字符集 gb2312
原文地址:https://www.cnblogs.com/shacry/p/10257341.html