iconv("GB2312","UTF-8//IGNORE",$data) 

解决方案 »

  1.   

    是的  确定了 是ANSI格式的
      

  2.   

    是这样的 在做一个scv文件的导入功能 然后用记事本打开显示保存编码是ANSI,现在用fgetcvs来循环,在里面怎么弄都是不正常的。之前用记事本打开保存为utf-8导入功能是OK的 ,所以页面编码应该是utf-8
      

  3.   

    GB2312 是 GBK 的子集
    UCS-2 是 GBK 的变体
    UCS-2 与 UTF-8 间存在简单的位移操作所以从 GB2312 或 GBK 转换到 UTF-8 不存在数据丢失的现象
    反过来就有丢失的可能了ANSI 不能说明任何问题
    ANSI 泛指国家标准,计算机中指的是操作系统的默认字符集(可手工修改)
    以 windows 为例,简体中文系统就是 GBK、繁体中文系统就是 BIG5
      

  4.   

    那帮忙看下好吗 我填写的cvs文件中地区的信息是湖北省,湖南省,广东省,通过iconv('GB2312','UTF-8',$str),就转成一个‘省’字,假如是山东省或者山西省是完全翻译,四川省翻译成‘拇ㄊ’,这个是什么原因啊 卡了2天了 
      

  5.   

    你能把你的文件放到云盘吗?
    或是
    echo base64_encode(file_get_contents('你的csv文件名', false, null, 0, 1000));
    贴出结果
      

  6.   

    结果是这样的:
    然后我用 echo iconv('GBK','UTF-8',file_get_contents($file['tmp_name']));return false;
    得到的完全都是utf8的数据,可惜这样不是我想要的
      

  7.   

    1、贴出 base64 数据
    2、说一下你打算做什么
      

  8.   

    seDC6yxDUk2x4MLrLMP7s8YsvPKzxizQ0NK1LCK/zbunwODQzaOosOzKwrSmOjEs1+7W1b/Nu6c6Miy0+sDtycw6M6OpIiwiveHL48Dg0M2jqNfu1tW/zbunOjEsveHL47/Nu6c6MizP+srbv827pzozo6kiLMv5yvS/zbunLMv51NrH+NPyLMGqz7XIyyzBqs+1yMu157uwLLXY1rcssbjXoiyxuNeiMiyxuNeiMw0KLGZnZ2csc2RmZ2ZkaGgsc2FkLM28yum53dTEwMDK0iwzLDAsZmRnZGZnLMm9tqvKoSxhc2RmZywxMzgwMDEzODAwMCxmZGhmZ2hmLGFhYSxiYmIsY2NjDQo=
    我想要的就是通过fgetcsv函数循环每行记录组成数组,存入数据库 但是直接file_get_contents的话拿到的想做到这种效果比较困难,因为在cvs文件里好多个字段,有些可填有些必填。所以才那么纠结
      

  9.   

    那根编码转换有什么关系
    $fp = fopen('你的csv文件名', 'r');
    while($row = fgetcsv($fp)) {
      $res[] = $row;
    }
    print_r($res);
      

  10.   

    谢谢版主大大这么晚了还在帮忙解决问题 ,是这样的 ,cvs文件的编码是gb2312的,数据库编码是utf8的,然后我装进数组之前要把这里获取到的数据和库里面的做比对,来获取我要的数据,而且cvs文件里好多字段的都是汉字,所以要转码才能入库,问题是在外面file_get_contents之后转码可以进去循环里面一个一个转码就不行。
      

  11.   

    不需要转码
    只需在比较之前执行一次 mysql_query('set names gbk'); 就可以了
      

  12.   

    版主大大  再问一个问题啊 ,那我的gbk编码的数据如何入库啊,库里面是utf8的编码,我怀疑是不是fegtcvs这个函数的作用啊 ,再里面转码就不行在外面转码就可以
      

  13.   

    gbk 的数据插入到 utf8 的表,只需在插入前执行一次 mysql_query('set names gbk'); 就可以了mysql_query('set names gbk');
    这条指令的作用是:通知 mysql 现在用 gbk 字符集进行操作
    转码的工作由 mysql 自己完成
      

  14.   

    恩 谢谢版主大大 ,虽然说我换了file代替了fgetcsv实现了功能