2012-03-28 14 views
1

fgetcsvメソッドを使用してCSVファイルを読み込むと、文字列の先頭にある場合は "Å"と "Ø"が削除されます。 PHP 5.3:fgetcsvと不足している文字

while (($data = fgetcsv($handle, 0, "\t")) !== FALSE) { 
     echo $data[0]."<br />"; 
} 

は、出力は(先頭の「A」のノート欠如)

任意のアイデアbyÅÅÅÅhøjÅで、私のcsvファイルは一つだけの行ÅbyÅÅÅÅhøjÅが含まれていると仮定しますか? documentation of fgetcsvから

+0

おそらく約見て。』 en/function.fgetcsv.php: "ロケール設定はこの関数によって考慮されます。 LANGが例えばen_US.UTF-8、1バイトエンコーディングのファイルはこの関数で間違って読み込まれます。 " – Akarun

答えて

0

私は引用符で入力を包んしている - 今、文字列の常に最初の文字は次のようになりますあなたのファイルとPHPスクリプトのエンコーディング 『:http://php.net/manual/」

3

NOTE

ロケール設定は、この機能によって考慮されます。 LANG がen_US.UTF-8では、この 関数によって1バイトエンコーディングのファイルが誤って読み取られます。

これは、文字列のエンコーディングとロケール設定(またはその逆)を一致させる必要があることを意味します。また、入力文字列の予期しない文字の一貫性のない処理に関するbug report on bugs.php.netもあります。

+0

ちょっとした注意:私たちは、独自のcsvパーサを書いたPHPのcsv処理に関して非常に多くの問題を抱えています。 – soulmerge

+0

私は私のコメントで言う。 – Akarun

関連する問題