次のような 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) "name@domain.de"
[3]=>
string(7) "Example"
[4]=>
string(7) "Example"
}
Jürgenのüは¦文字に置き換えられます。
前に次のコードを入れてみました:
mb_internal_encoding('UTF-8');
しかし、それは効果がありませんでした。
Vi で csv ファイルを開くと ü が正常に表示されるので、ファイルはサーバー上で正しいです。
CSVを解析するときにPHPがドイツ語の文字をうまく処理する方法を教えてもらえますか?