解决方案 »

  1.   

    utf-8格式 的格式是咋样的.
    utf-8也有 一字节
      

  2.   

    关键在于要求是utf-8的,但是不包含中文的时候不是。
      

  3.   

    UTF-8是按字节存储的,和ANSI是一样的,如果是Windows平台,可以使用BOM强制指定文件开始的UTF-8标志,但是这个在Linux,Mac上不这样,容易出问题。是否用UTF-8显示,取决与编辑器用什么编码来解析。
      

  4.   

    是按UTF-8写入的,但是当你写入的只是ANSI字符时,ANSI和UTF-8编码是一样的。而当你用文本编辑器打开它时,文本编辑器会根据文件的前几个字符来猜测一种编码格式来试图打开这个文件,所以,它认为这是一个ANSI编码,是没有问题的。有一个经典的例子,就是你打开记事本,写“联通”两个字,然后保存,这时是按ANSI保存的,保存关闭后再用记事本打开它,就变成乱码了,因为联通两个字的ANSI编码恰好与UTF-8编码的头一样,然后就用那种编码解析了,就乱码了。如果你用Notepad++打开它,也是乱码,然后看当前的解析编码,是UTF-8,改成ANSI,就不乱了。就是这个道理。但是不知道猜测的顺序是什么,算法是什么。否则不知道为什么英文字符就当ANSI打开了,联通为什么就当UTF-8打开了,不按ANSI打开呢
      

  5.   

    有道理, 不过还是有点问题, 我试了用代码保存abc, 文件大小是3字节, 然后我另存为utf8, 大小变成6字节, 你的意思是本来就是utf8, 那本来应该也是6字节, 还有一个奇怪的, 我保存"abc我", 看编码是utf8, 大小是6字节, 然后我继续另存为utf8, 看大小变成9字节
      

  6.   

    有道理, 不过还是有点问题, 我试了用代码保存abc, 文件大小是3字节, 然后我另存为utf8, 大小变成6字节, 你的意思是本来就是utf8, 那本来应该也是6字节, 还有一个奇怪的, 我保存"abc我", 看编码是utf8, 大小是6字节, 然后我继续另存为utf8, 看大小变成9字节哦,那我也不知道了,没研究过。
      

  7.   

    查了一些资料, 楼主的问题如8楼所说, 保存是utf8的, 只不过utf8纯字母保存的数据和gb2312的数据是一样的, 所以记事本打开当成ansi, 而我上面提到的问题是由于使用记事本的另存为会自作主张的在文件头部加入BOM(Byte Order Mark), 导致多出三个字节