如何把数据从GB2312转换成UTF-8 iconv("GB2312","UTF-8//IGNORE",$data) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是的 确定了 是ANSI格式的 是这样的 在做一个scv文件的导入功能 然后用记事本打开显示保存编码是ANSI,现在用fgetcvs来循环,在里面怎么弄都是不正常的。之前用记事本打开保存为utf-8导入功能是OK的 ,所以页面编码应该是utf-8 GB2312 是 GBK 的子集UCS-2 是 GBK 的变体UCS-2 与 UTF-8 间存在简单的位移操作所以从 GB2312 或 GBK 转换到 UTF-8 不存在数据丢失的现象反过来就有丢失的可能了ANSI 不能说明任何问题ANSI 泛指国家标准,计算机中指的是操作系统的默认字符集(可手工修改)以 windows 为例,简体中文系统就是 GBK、繁体中文系统就是 BIG5 那帮忙看下好吗 我填写的cvs文件中地区的信息是湖北省,湖南省,广东省,通过iconv('GB2312','UTF-8',$str),就转成一个‘省’字,假如是山东省或者山西省是完全翻译,四川省翻译成‘拇ㄊ’,这个是什么原因啊 卡了2天了 你能把你的文件放到云盘吗?或是echo base64_encode(file_get_contents('你的csv文件名', false, null, 0, 1000));贴出结果 结果是这样的:然后我用 echo iconv('GBK','UTF-8',file_get_contents($file['tmp_name']));return false;得到的完全都是utf8的数据,可惜这样不是我想要的 1、贴出 base64 数据2、说一下你打算做什么 seDC6yxDUk2x4MLrLMP7s8YsvPKzxizQ0NK1LCK/zbunwODQzaOosOzKwrSmOjEs1+7W1b/Nu6c6Miy0+sDtycw6M6OpIiwiveHL48Dg0M2jqNfu1tW/zbunOjEsveHL47/Nu6c6MizP+srbv827pzozo6kiLMv5yvS/zbunLMv51NrH+NPyLMGqz7XIyyzBqs+1yMu157uwLLXY1rcssbjXoiyxuNeiMiyxuNeiMw0KLGZnZ2csc2RmZ2ZkaGgsc2FkLM28yum53dTEwMDK0iwzLDAsZmRnZGZnLMm9tqvKoSxhc2RmZywxMzgwMDEzODAwMCxmZGhmZ2hmLGFhYSxiYmIsY2NjDQo=我想要的就是通过fgetcsv函数循环每行记录组成数组,存入数据库 但是直接file_get_contents的话拿到的想做到这种效果比较困难,因为在cvs文件里好多个字段,有些可填有些必填。所以才那么纠结 那根编码转换有什么关系$fp = fopen('你的csv文件名', 'r');while($row = fgetcsv($fp)) { $res[] = $row;}print_r($res); 谢谢版主大大这么晚了还在帮忙解决问题 ,是这样的 ,cvs文件的编码是gb2312的,数据库编码是utf8的,然后我装进数组之前要把这里获取到的数据和库里面的做比对,来获取我要的数据,而且cvs文件里好多字段的都是汉字,所以要转码才能入库,问题是在外面file_get_contents之后转码可以进去循环里面一个一个转码就不行。 不需要转码只需在比较之前执行一次 mysql_query('set names gbk'); 就可以了 版主大大 再问一个问题啊 ,那我的gbk编码的数据如何入库啊,库里面是utf8的编码,我怀疑是不是fegtcvs这个函数的作用啊 ,再里面转码就不行在外面转码就可以 gbk 的数据插入到 utf8 的表,只需在插入前执行一次 mysql_query('set names gbk'); 就可以了mysql_query('set names gbk');这条指令的作用是:通知 mysql 现在用 gbk 字符集进行操作转码的工作由 mysql 自己完成 恩 谢谢版主大大 ,虽然说我换了file代替了fgetcsv实现了功能 求:php生成全静态网站 求助!一个解析mp3信息的类,但有点问题,请高手看下 php添加系统用户 大家看我想的防止采集的思路可行吗? php parse xml 如何得到两组值,foreach循环要怎么写 求正则 php+sqlite使用联合查询却得不到数据的问题? 请问在windows下安装Apache服务器的时间怎么调整? MySQL连接错误 请问如何在javascript中实现PHP中的chr函数功能啊 请问并发写入数据库,如何保持唯一性啊 php分页和搜索的问题
UCS-2 是 GBK 的变体
UCS-2 与 UTF-8 间存在简单的位移操作所以从 GB2312 或 GBK 转换到 UTF-8 不存在数据丢失的现象
反过来就有丢失的可能了ANSI 不能说明任何问题
ANSI 泛指国家标准,计算机中指的是操作系统的默认字符集(可手工修改)
以 windows 为例,简体中文系统就是 GBK、繁体中文系统就是 BIG5
或是
echo base64_encode(file_get_contents('你的csv文件名', false, null, 0, 1000));
贴出结果
然后我用 echo iconv('GBK','UTF-8',file_get_contents($file['tmp_name']));return false;
得到的完全都是utf8的数据,可惜这样不是我想要的
2、说一下你打算做什么
我想要的就是通过fgetcsv函数循环每行记录组成数组,存入数据库 但是直接file_get_contents的话拿到的想做到这种效果比较困难,因为在cvs文件里好多个字段,有些可填有些必填。所以才那么纠结
$fp = fopen('你的csv文件名', 'r');
while($row = fgetcsv($fp)) {
$res[] = $row;
}
print_r($res);
只需在比较之前执行一次 mysql_query('set names gbk'); 就可以了
这条指令的作用是:通知 mysql 现在用 gbk 字符集进行操作
转码的工作由 mysql 自己完成