str_getcsv的奇怪行为

时间:2012-12-20 15:05:54

标签: php string csv

我有一个csv文件,内容形式为:

INN code;Tekst;User id;Project_id;priority;Date
6658172497;мини тестик, выполни ,и закрой задание;255;1;4;2012-12-22    
6658228284;мини тестик, выполни и закрой задание;255;1;4;2012-12-22    
7806351504;мини тестик, выполни и закрой задание;255;1;4;2012-12-22    
7710077498;мини тестик, выполни ,и закрой задание;255;1;4;2012-12-22

在我的本地Windows机器上(php ver 5.4.7),str_getcsv($row, ';')的工作方式应该正确并且正确地分割行。但是当我在运行CentOS(php ver 5.3.3)的测试机器上尝试相同时,第二列(мини тестик)的一部分被切断,只留下(,выполни ,и закрой задание)。 如果在列数据前面放置一个拉丁字符,它只会切断字符前面的部分。

在不同的操作系统

上找不到任何解释这种奇怪行为的帮助

2 个答案:

答案 0 :(得分:1)

CSV功能对设置的区域设置很敏感 Set your locale以匹配文件的编码。

答案 1 :(得分:0)

你试过setlocale()吗?

另外,我认为它可能是由文本中的空格和逗号引起的。尝试用双引号括起俄语部分,或尝试this

希望它适合你。