【发布时间】:2011-09-28 13:54:02
【问题描述】:
标签: php csv diacritics
标签: php csv diacritics
假设 fgetcsv (http://php.net/manual/en/function.fgetcsv.php) 的工作方式类似于 str_getcsv() 然后引用手册页:
考虑了区域设置 通过这个功能。如果 LANG 是例如 en_US.UTF-8,一个字节的文件 编码被这个读错了 函数。
那么您应该尝试使用 setlocale 设置语言环境 http://php.net/manual/en/function.setlocale.php
如果这不起作用,请尝试启用多字节重载 http://www.php.net/manual/en/mbstring.overload.php
或者更好的是,使用 Zend/Symfony 库等标准框架库来提取数据
【讨论】:
我在一些源自 Microsoft Excel 的数据中的 ï 字符遇到了类似的问题,保存为 CSV(是的,在“另存为...”对话框的“网络选项”部分中选择了 UTF8 编码)。而且,这似乎与 str_getcsv 所期望的 UTF8 编码不同。
我现在首先通过iconv 运行所有内容,它工作正常 - Excel 的 CSV 文件想法似乎有些问题:
iconv -f windows-1252 -t utf8 source.csv > output.csv
【讨论】: