私は電子商取引のウェブサイトのインポート/エクスポート機能を作成しています。在庫をインポートする機能がうまく機能しています。しかしそこには問題があります。在庫フィールド内に特殊文字(「。」、「、」など)を書くと、この文字は「??」に置き換えられます。PHPのCSVから読み込めない特殊文字(ex "。")
だから誰でも問題を解決できますか?
私は電子商取引のウェブサイトのインポート/エクスポート機能を作成しています。在庫をインポートする機能がうまく機能しています。しかしそこには問題があります。在庫フィールド内に特殊文字(「。」、「、」など)を書くと、この文字は「??」に置き換えられます。PHPのCSVから読み込めない特殊文字(ex "。")
だから誰でも問題を解決できますか?
header("Content-Type: text/html; charset=utf-8");
$csvContent = file_get_contents($fileName);
$encoding = mb_detect_encoding($csvContent,
array("UTF-8","UTF-32","UTF-32BE","UTF-32LE","UTF-16","UTF-16BE","UTF-16LE"),
TRUE);
if($fileEncoding !== "UTF-8") {
$csvContent = mb_convert_encoding($csvContent, "UTF-8", $fileEncoding);
}
foreach(explode(PHP_EOL, $csvContent) as $item) {
var_dump($item);
}
まだ動作しません。 –
「テスト...」のような1つのフィールドが必要でした。その後、「....」は結果として自動的に削除されます。 –
PHPコードのスニペットを教えてください。 – luka5z
$ file = "inventory.csv" while($行= fgetcsv($ファイル)){ \tエコー "
"; } –このような問題は、CSVがWindows/ISOエンコーディングとUTF-8で動作するPHPで作成されていることが原因です。エンコードを確認してください。 – jtheman