zoukankan      html  css  js  c++  java
  • 读写文件时遇到编码问题解决方法

    读取文件时有时候会遇到编码问题,导致读取的内容为乱码,此时我们可以用iconv来进行转码。

    使用file_get_contents()来读取文件内容,但是有时候文件过大的话,就会导致内存溢出,读取失败,

    此时使用逐行读取的方法;

    $file = '1.txt';
    $handle = fopen($file, 'r');
    while (!feof($handle)) {
    $line = fgets($handle);
        $encoding = mb_detect_encoding($line, array('GB2312','GBK','UTF-16','UCS-2','UTF-8','BIG5','ASCII'));  //识别内容是哪一种编码。如果知道编码就忽略这一步

    $con = iconv($encoding,"UTF-8",$line);
      echo $con;
    }


    或者可以在linux上直接先对文件进行转码

    $ iconv -c -f EUC-CN -t utf8 1.txt -o 2.txt

    选项注解
    -f 原始文件编码
    -c 忽略错误字符
    -t 目标字符集
    -o 输出文件




  • 相关阅读:
    好元素(good)
    三条线 (Standard IO)
    计数排序-自然顺序Comparable
    贪心算法之田忌赛马
    bzoj3400
    bzoj1704
    CF Round #456 (Div. 2)
    LA3029
    bzoj3000
    bzoj3623
  • 原文地址:https://www.cnblogs.com/kyuang/p/9636411.html
Copyright © 2011-2022 走看看