2
如何支持非标准的字符。我有一个简短的脚本读取一个CSV文件,该文件如下所示:在PHP SplFileObject阅读CSV
$csv = new SplFileObject($pathToFile, 'r');
while (!$csv->eof() && ($row = $csv->fgetcsv()) && $row[0] !== null) {
var_dump($row);
}
该工程确定,但它有一些问题非标准字符。 CSV中有一些德语单词,我的具体问题是它有变音困难。行它输出的类型的一个例子是:
array(5) {
[0]=>
string(6) "J¦rgen"
[1]=>
string(8) "Lastname"
[2]=>
string(14) "[email protected]"
[3]=>
string(7) "Example"
[4]=>
string(7) "Example"
}
在的Jürgen的ü得到与替换|字符。
我试图把下面的代码之前:
mb_internal_encoding('UTF-8');
但它没有任何效果。
在Vi中打开csv文件显示成功,所以文件在服务器上是正确的。
任何人都可以建议如何在解析CSV时成功处理德语字符?
适用于我。假设你在终端执行它,你使用的是哪种终端编码?通过浏览器试用。 – hek2mgl
我从命令行运行它,但我做了一些调整,从浏览器运行并发生相同的事情。 来自CSV的值会被放入MySQL数据库表中,该表也不会获取虚拟字符。 (同一系统中的其他PHP脚本,其中数据来自HTTP POST而不是CSV文件,可成功处理变音符号并将它们插入到MySQL中而不会出现问题)。 – Jack
尝试使用'iconv'(在命令行上)将文件转换为'utf-8'。你需要知道什么是csv文件的输入编码。为此,您需要查看生成csv的程序。如果这是不可能的,我最好的猜测是windows-CP-1252 – hek2mgl