如果你写入的内容全是英文,半角,数字字符,那么 ANSI和不带头的UTF-8文件 没有任何区别,所以无所谓.
有些文章说UTF-8多出三个字节.那是带了大头的.如果写入的内容有多字节字符.比如中文,全角,在写入时确保这些字符本身是utf-8就行了.
如果不是,用mb_convert_encoding()进行转换.文本文件,从本质上讲并没有文件编码,有的只是文件中的 字符编码.

解决方案 »

  1.   


    加了大头的UTF-8.极容易造成引用时出现问题.比如先include,后面有setcookie,session,或者 header语句的时候.
      

  2.   


    file_put_contents("/www/imgserver/setting.cfg",chr(48).chr(49).chr(50).file_get_contents("/www/imgserver/setting.cfg")); //把这3个字符加到最前面
      

  3.   

    chr(48).chr(49).chr(50).
    ===================
    这个地方说错了,应该是chr(239).chr(187).chr(191)如果apache版本不是很多的话,文件中的BOM不会出什么问题
      

  4.   

    如果apache版本不是很多的话=》更正:不是很低,
      

  5.   

    比如我的$servername要输入中文的话就应该这样用吗? mb_convert_encoding($servername);
        fwrite($fb,'name='.$servername."\r\n"); 我这方面根本都不明白 请高手们帮我好好的弄下 就算帮我一个大忙了 谢谢了
      

  6.   

    mb_convert_encoding($要转换的字符, "UTF-8", "你的源始编码,比如GBK");还有,你不要用那么多fwrite增加IO操作.
    可以先放在一个字符串变量里.整理好了一次性fwrite进去.
      

  7.   


    不知者无畏.....
    这跟apache半点关系都扯不上....
      

  8.   

    用这个吗?好像有错误呀$servername = mb_convert_encoding($servername,"utf-8","gb2312");fwrite($fb,'name='.$servername."\r\n");
      

  9.   

    $servername = iconv("gb2312",'utf-8',$servername);
              fwrite($fb,'name='.$servername."\r\n");
    这样吗?