zoukankan      html  css  js  c++  java
  • fgetcsv函数的“陷阱”

           今天遇到一个奇怪的问题,前几天写的一个PHP解析CSV文件格式的代码,在本地运行正常,到了测试站上,就感觉像泄了气的球一样,不顶用了,而且只要是中文输入,总是不能正确读取,开始的时候怀疑是版本问题,因为本地装的是5.3的最新版,所以总是有所怀疑,可是看了手册,却推翻了我的这个问题。正纠结着,而且如果说无论输入什么都不能解析么,那也就罢了,奇就奇在,我第一行的中文他解析没有问题,第二行开始

    的所有中文,他都解析不了,读取出来的都是空字串。也排除了我怀疑的编码问题。

           后来在手册中找到如下一句话 

       1: Note:
       2:  
       3: Locale setting is taken into account by this function. If LANG is e.g. en_US.UTF-8, files in one-byte encoding are read wrong by this function. 

    然后google了下fgetcsv,才发现,原来确实是这样,fgetcsv函数对区域的设置是敏感的,对于单字节编码的文件读取时会出现错误。在网上也看到类是可行的解决方案:在执行之前先设置setlocale();地区信息。不过没验证该方法的可行度。

          最后是用fget来代替该方法。

    Technorati 标签: php,fgetvsc,中文读取不倒
  • 相关阅读:
    最优装载问题---贪心算法
    windows 10 资源管理器多余盘符去除
    js版本排序改造vue版本
    async and await
    echarts问题
    vue兼容到IE9
    expdp/impdp 参数说明,中英对照
    MySQL ibdata1文件迁移
    Oracle AWR报告提取方法
    Vertica DBD 分析优化设计
  • 原文地址:https://www.cnblogs.com/xiaoyaoxia/p/2047859.html
Copyright © 2011-2022 走看看