标签:
对于Windows记事本: ANSI :GB2312 java中应使用GBK解码 Unicode :有签名的UTF-16LE java中应使用UTF-16解码 Unicode big endian :有签名的UTF-16BE java中应使用UTF-16解码 UTF-8 :有签名的UTF-8 java中只能手动去掉签名了再用UTF-8解码了 对于java程序的解码: GBK :GBK编码可以兼容GB2312,因此用GBK处理GBK、GB2312两种编码 UTF-8 :无签名的UTF-8 UTF-16 :有签名的UTF-16LE或UTF-16BE,两者根据签名自动识别 UTF-16BE:无签名的UTF-16BE UTF-16LE:无签名的UTF-16LE UNICODE其实只是字符集而不是编码,Windows的记事本用Unicode来代表有签名的UTF-16LE有些 不恰当,记事本里面的ANSI在不同系统会映射成不同编码,在中文系统是GB2312编码,在英文系 统是ASCII编码 签名又叫BOM,即字节顺序标记,它是插入到以UTF-8、UTF16或UTF-32编码Unicode文件开头的 特殊标记,用来识别Unicode文件的编码类型。对于UTF-8来说,BOM并不是必须的,因为BOM用来 标记多字节编码文件的编码类型和字节顺序(big-endian或little- endian)。 BOMs 文件头: 00 00 FE FF = UTF-32, big-endian FF FE 00 00 = UTF-32, little-endian EF BB BF = UTF-8, FE FF = UTF-16, big-endian FF FE = UTF-16, little-endian
签名、BOM头、编码、Windows记事本编码、java编码解码的那些事
标签:
原文地址:http://www.cnblogs.com/xxNote/p/5416138.html