首先需求是:从一个文本中读取相关内容(a.txt),利用分隔符把读取的内容转成数组,再将数组处理后用fputcsv函数追加的指定的csv文件当中(b.csv)。
需求的条件:1、读取的文件是windows下默认的UTF-8文件(带有BOM),csv文件也是UTF-8(带有BOM)的文件
问题来了:程序调试过程中,因为读取的内容有中文,所以要用iconv函数进行转码,正常输出数组没有问题。但当要写入b.csv文件时,第一个属性值莫名奇妙没了。
看代码php
header("Content-Type:text/html;charset=utf-8"); $file = "D:/phpcsv/b.csv"; $fp = fopen($file, "a"); $fileAttribute = "D:/phpcsv/a.txt"; $product_attrs = file_get_contents($fileAttribute); $product_attrs = str_replace(PHP_EOL, ',', $product_attrs); $arra_attrs = explode(',', $product_attrs); $arra_attrs_cn = explode("\t", $product_attrs_cn); foreach ($arra_attrs as $k => $v) { $v = str_replace(PHP_EOL, '', $v); echo $v."<br/>"; $arra_attrs[$k]=iconv('UTF-8', 'GB18030', $v); } fputcsv($fp, $arra_attrs);
a.txt
宝贝名称 宝贝类目 店铺类目 新旧程度 省 城市 出售方式 宝贝价格 加价幅度 宝贝数量 有效期 运费承担 平邮 EMS 快递 发票 保修 放入仓库 橱窗推荐 开始时间 宝贝描述 宝贝属性 邮费模版ID 会员打折 修改时间 上传状态 图片状态 返点比例 新图片 视频 销售属性组合 用户输入ID串 用户输入名-值对 商家编码 销售属性别名 代充类型 数字ID 本地ID 宝贝分类 用户名称 宝贝状态 闪电发货 新品 食品专项 尺码库 采购地 库存类型 国家地区 库存计数 物流体积 物流重量 退换货承诺 定制工具 无线详情 商品条形码 sku 条形码 7天退货 宝贝卖点 属性值备注 自定义属性值 商品资质 增加商品资质 关联线下服务
b.csv
出现此问题的主要原因是因为windows下的UTF-8文件默认为带有BOM的,所以在读取的文件的到时候,是会吧BOM的开头隐藏的字符一起读取,在用iconv转码的时候遇到特殊字符的时候,iconv会出现bug,直接去掉。
相关推荐
宽字节和多字节转换,利用C++实现UTF-8和UTF-16之间的转换,包括错误处理
iconv-lite - 纯javascript转换字符编码
文件包含:gbk2utf-8.bat、utf-82gbk.bat、iconv.exe及使用说明.txt四个文件 使用说明:1把要转换的所有.h和.c文件拷入该目录下,双击相应的bat文件即可。 2转换结果会保存在utf-8Res或gbkRes目录下。 3如果转换除...
perl-Text-Iconv-1.7-2.el5.i386
网上的都是这样用的 复制代码 代码如下:$content = iconv(“utf-8″,”gb2312”,$content); 这样做其实也对着了,看着确实是把utf-8转化为gb2312了,但是实际运行的话,往往都是以失败告终的,原因呢? 原因实际上...
window下的iconv库libiconv-2.dll,用户与字符集转换,utf-8转gkb,gbk转utf-8
windows64位,visual2017,配合Cmake使用,需要的可以下载使用。dcmtk有多种工具集合,包括实现jpeg2000压缩dcm文件。windows的支持库
一个利用iconv函数将GBK码转为UTF-8码的函数,本函数在LINUX系统下测试正常。目前支持中文繁简、日文、英文、俄文等的转码。函数其实很简单,另外精选了一些本人觉得有助于理解ICONV函数及Unicode、GBK这些概念的...
其中 -f gbk 指明转换前的文件编码是gbk,-t utf-8 指明转换后的文件编码是utf-8,gbk.txt 是转换前文件的名称,> utf-8.txt指明把转换结果输出到utf-8.txt文件中。 当我们要转换大量文件时,我们可以结合windows...
perl-Text-Iconv-1.2-fc1.i386.rpm
apr-iconv-1.2.1-win32-src.zip这是ActiveMQ中间件开发需要用的库
perl-Text,perl-Text-Iconv-1.4-1.2.el5.rf.i386
iconv-1.14-win32-x86_64
perl-Text-Iconv-1.7-1.el5.rf.i386.rpm
linux和windows版本:apr,apr-iconv和apr-util安装包
在 UTF-8 环境中解压 UTF-8、GBK、BIG5 或 SHIFT-JIS 编码的 zip 文件。 自动检测zip文件中文件名的编解码器,或者您可以使用-c指定特定的编解码器,但强制错误的编解码器将无法提取文件。 参考iconv --list以获取...
gettext0.21-iconv1.16-static-64
UTF-8 UTF16 UTF-16 UTF16BE UTF-16BE UTF16LE UTF-16LE UTF32 UTF-32 UTF32BE UTF-32BE UTF32LE UTF-32LE UCS2 UCS-2 UCS-2LE UCS-2BE UCS-2-INTERNAL UCS4 UCS-4 UCS-4LE UCS-4BE UCS-4-...
第二人生游戏,很好的学习资料,帮助dx,OpenGL开发