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.

解决方案 »

  1.   

    用二进制软件的把你保存的文件打开就知道了,如winhex,ultraedit.有的带文件识别头的.magic
      

  2.   

    你用UtralEdit打开,Hex方式查看。UTF-8的文件,有2个字节的文件头。
      

  3.   

    utf_8格式文件在win7下,有3个字节头:
    ef bb bf
    用utf_8表示一个字母,占一个字节。 所以楼主的问题1 占4个字节。
    而一般汉字utf_8表示占3个字节,所以楼主的问题2 占6个字节。