想转换txt文件的编码,请问该如何操作。 (从gbk转为utf-8,文件名为 1.txt)

解决方案 »

  1.   

    请问,如何使用php进行文件编码的转换
      

  2.   

    $fn = 待转换的文件名//写成无 BOM 头的
    file_put_contents($fn, iconv('gbk', 'utf-8', file_get_contents($fn)));//写成有 BOM 头的
    file_put_contents($fn, "\xef\xbb\xbf" . iconv('gbk', 'utf-8', file_get_contents($fn)));
      

  3.   

    没注意,目标文件名是 1.txt
    $fn = 待转换的文件名//写成无 BOM 头的
    file_put_contents('1.txt', iconv('gbk', 'utf-8', file_get_contents($fn)));//写成有 BOM 头的
    file_put_contents('1.txt', "\xef\xbb\xbf" . iconv('gbk', 'utf-8', file_get_contents($fn)));
      

  4.   

    谢谢,还有些问题想请教。
    文件编码为UTF-8的转为Unicode,出现错误  Notice: iconv() [function.iconv]: Wrong charset, conversion from `UTF-8' to `Unicode' is not allowed 
    <?php
    $SQLPath="C:/Users/hu/Downloads/data.txt";
    file_put_contents($SQLPath, iconv('UTF-8', 'Unicode', file_get_contents($SQLPath)));
     ?>
      

  5.   


    你检查一下你服务器上文件的编码,出现这种错误,好像是因为他不是utf-8的编码,你却让他转换
      

  6.   

    刚才回复错了,你检查一下你服务器上文件的编码,出现这种错误,好像是因为他不是utf-8的编码,你却让他转换
      

  7.   

    没有 Unicode 这个字符集名称
    Unicode 是由微软发起的美国工业新标准的简称对于汉字
    中国标准 GBK
    美国工业标准 UTF-8
    美国工业新标准 UCS-2
    微软企业标准 PC936GBK 到 后3者的互换使用的是查表法
    UCS-2 就是 PC936
    UTF-8 和 UCS-2 间存在简单的位移操作xp 系统中
    称之为 unicode 的实际是 ucs-2, bom 头为 "\xff\xfe",对应 utf-16le 
    称之为 unicode16 的实际是 ucs-2be, bom 头为 "\xfe\xff",对应 utf-16ble记不清了,你可以搜索一下
      

  8.   

    unicode是个统称,不是某个标准,php里面相关函数没有这项指定,所以出错