这篇(http://www.linuxidc.com/Linux/2011-08/40394p2.htm)叙述了用fgets的方法来代替fgetcsv读取csv文件,后来发现,如果不使经过处理而直接代替,还是有问题:着实让我郁闷了很久啊。首先,fgetcsv在处理的时候,会正确的处理一行中的内容,就算我行中含有换行符和,,都可以处理掉,正确的解析出来。而如果用fgets,那么这些都需要自己做,当然网上也给出了一个重写fgetcsv的方法,当然用的使正则,这个效率上需要斟酌啊。但是fgetcsv却有个问题,就如我上一篇中提到的,地区的设置,当然setlocale(LC_ALL, "zh_CN");事实证明是可以解决的,但是这个是在我WIN下测试的情况下。当我转移到Ubuntu来测试的时候,悲剧发生了。虽然我的ubuntu系统使中文的系统,可是用的local是zh_CN.UTF8的,并没有zh_CN.GBK的,于是乎,中文字不能解析的情景再次上演了。当然前辈的肩膀总是伟大的,在互联网的推动下,一切都有办法解决。我先是更新了下语言包,系统->管理->语言支持。第一次打开的时候提示我没有安装完全,需要升级,于是我升级了,可是在命令行中查看locale -a的时候,仍然没有zh_CN:www.linuxidc.com@ubuntu:/usr/www/GBKHost/test$ locale -a
C
POSIX
zh_CN.utf8
zh_HK.utf8
zh_SG.utf8
zh_TW.utf8 于是我这样做:1、修改local文件,添加zh_CN支持:sudo vi /var/lib/locales/supported.d/local在第一行前插入一行zh_CN 为了万一,我也插入了zh_CN.GBK GBK这行保存。2、设置支持包sudo locale-gen zh_CNsudo locale-gen zh_CN.GBK3、 再次运行locale -awww.linuxidc.com@ubuntu:/usr/www/GBKHost/test$ locale -aCPOSIXzh_CNzh_CN.gb2312zh_CN.gbkzh_CN.utf8zh_HK.utf8zh_SG.utf8zh_TW.utf8终于有了。再次去运行下csv导入页面(当然含有setlocale(LC_CTYPE, "zh_CN")操作了),成功!
Ubuntu 10.10用LibreOffice替换OpenOfficeMakefile中的常用变量与函数相关资讯 Ubuntu教程
- Ubuntu教程 - 使用Ubuntu拷贝CD和 (12/18/2013 14:38:16)
- 让Ubuntu 12.10支持RAR和7Z文件解 (11/15/2012 18:51:50)
- Windows 7硬盘安装Ubuntu 12.10图 (11/03/2012 19:22:47)
| - 完美安装Ubuntu 12.10最新AMD显卡 (11/27/2012 08:17:47)
- Win 7硬盘安装Ubuntu 12.10 (11/05/2012 13:30:34)
- 虚拟机上Ubuntu 11.10升级到12.04 (10/12/2012 20:00:38)
|
本文评论 查看全部评论 (0)