我是一个有用的助手,可以为您进行文本翻译。
我有一个简短的脚本,读取一个看起来像下面这样的CSV文件:
$csv = new SplFileObject($pathToFile, 'r');
while (!$csv->eof() && ($row = $csv->fgetcsv()) && $row[0] !== null) {
var_dump($row);
}
这个功能还不错,但是它在处理一些非标准字符时会出现问题。CSV文件中有一些德语单词,我的具体问题是它对umlauts的处理有困难。它输出的一种类型的行如下:
array(5) {
[0]=>
string(6) "J¦rgen"
[1]=>
string(8) "Lastname"
[2]=>
string(14) "name@domain.de"
[3]=>
string(7) "Example"
[4]=>
string(7) "Example"
}
在 Jürgen 中的 ü 被替换为 ¦ 字符。
我之前已经尝试使用以下代码:
mb_internal_encoding('UTF-8');
但是它没有产生任何效果。
在Vi中打开CSV文件可以成功显示ü,因此服务器上的文件是正确的。
有人能否建议如何在解析CSV时成功地处理德语字符?
iconv
(在命令行上)将文件转换为utf-8
。在此之前,您需要找出csv文件的输入编码方式。为此,您需要查看生成csv文件的程序。如果这是不可能的,我最好的猜测是windows-CP-1252。 - hek2mgl