日期:2014-05-20  浏览次数:20662 次

win7记事本编码问题,帮忙看看
1.UTF-8是既然是可变的,为什么在win7中用记事本存入一个字母,用UTF-8保存,属性查看竟然占了4个字节

2.用记事本存入一个汉字,用UTF-8保存,占的竟然是6个字节。

按照我的理解,一个字母应该只占一个自己才对。而汉字,例如“严”的UTF-8编码是“11100100 10111000 10100101”,保存为UTF-8应该占3个字节才对,为什么在记事本中占了6个字节?这个问题导致我在IO操作的时候频频出错。
补充一点:使用ANSI编码就完全正常,ANSI对字母默认是ASCII编码,汉字是gb2312.
------最佳解决方案--------------------
utf_8格式文件在win7下,有3个字节头:
ef bb bf
用utf_8表示一个字母,占一个字节。 所以楼主的问题1 占4个字节。
而一般汉字utf_8表示占3个字节,所以楼主的问题2 占6个字节。

------其他解决方案--------------------
Windows的utf8有bom,Java没有。
------其他解决方案--------------------
用二进制软件的把你保存的文件打开就知道了,如winhex,ultraedit.有的带文件识别头的.magic
------其他解决方案--------------------
你用UtralEdit打开,Hex方式查看。UTF-8的文件,有2个字节的文件头。
------其他解决方案--------------------
结贴!谢谢大家的回答