今天主要是想写一个PHP导入csv文件的方法,其实网上一搜一大把。都是可以实现怎么去导入的。但是我导入的时候遇到了两个问题,一个是在windows上写代码的时候测试发生了乱码问题,然后解决了。第二个是提交到linux系统上的时候又发生了乱码。我开始还不清楚是乱码的原因,一开始我还以为是代码svn提交发生的错误,到最后我在我的一个群里提问了一下,一朋友是做PHPcms的,他说他遇到从Windows提交到Linux的时候刚开始也总是发生错误,后来排查原因就是乱码导致成的。下面切入正题看怎么解决两个问题的吧! 问题一解决: PHP读取csv文件,在windows上出现中文读取不到的情况,本人立马想到一个函数mb_convert_encoding();作如下设置 $str = mb_convert_encoding($str,"UTF-8","GBK");然后就可以了。当然你也可以用iconv();作如下设置iconv(‘GBK',”UTF-8//TRANSLIT//IGnorE”,$str);这两个函数来解决在windows上面发生乱码的问题。 问题二解决: PHP读取csv文件,在linux上出现中文读取不到的情况,百度,google后找到解决办法 就是添加了一行代码setlocale(LC_ALL,'zh_CN');对,亮瞎你的眼了吧。就这么简单,如果你不知道,可能会花很多时间去解决这个问题。
PHP setlocale() 函数解释
定义和用法 setlocale() 函数设置地区信息(地域信息)。 地区信息是针对一个地理区域的语言、货币、时间以及其他信息。该函数返回当前的地区设置,若失败则返回 false。
以下是在资料上收集常用的地区标识: <div class="codetitle"><a style="CURSOR: pointer" data="40485" class="copybut" id="copybut40485" onclick="doCopy('code40485')"> 代码如下: