zoukankan      html  css  js  c++  java
  • 再谈fgetcsv之在ubuntu10.10下不能解析中文的问题

          前一篇叙述了用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:

    xiaoxiao@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_CN

    sudo locale-gen zh_CN.GBK  

    3、 再次运行locale -a 

    xiaoxiao@ubuntu:/usr/www/GBKHost/test$ locale -a
    C
    POSIX
    zh_CN
    zh_CN.gb2312
    zh_CN.gbk
    zh_CN.utf8
    zh_HK.utf8
    zh_SG.utf8
    zh_TW.utf8
    

    终于有了。

    再次去运行下csv导入页面(当然含有setlocale(LC_CTYPE, 'zh_CN')操作了),成功!

  • 相关阅读:
    CentOS6.9依赖包快速安装指南
    CentOS 6.5安装部署Zabbix 3.05指南
    Nginx最佳安装与优化
    Linux Bonding最优配置
    macOS下用命令行发邮件
    Linux iperf网络性能测试
    MTR网络诊断自动脚本实例
    nmon监控linux资源使用情况
    思科HSRP配置实例
    常用正则表达式
  • 原文地址:https://www.cnblogs.com/xiaoyaoxia/p/2059056.html
Copyright © 2011-2022 走看看