1

テストとして簡単な PHP スクリプトを作成しました。PHPでデータからcsvを保存したい。このスクリプトは機能しますが、Excel で開くと特殊文字が意味不明です。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Character Test</title>
</head>

<body>
<ul>
<?php
$spanishDept = array('Swimwear'=>'Trajes de baῆo','Boys Swimwear'=>'Trajes de baῆo','Girls Swimwear'=>'Trajes de baῆo','Kids Shoes'=>'Zapatos de niῆos',"Scarves"=>'Paῆoletas','Children\'s'=>'Niῆos','Coffee Mugs'=>'Tasas para café');

$list = '"Item","Spanish"'."\r";
foreach($spanishDept AS $english=>$spanish) {
        echo '<li>'.$english.': '.$spanish.'</li>';
        $list .= '"'.$english.'","'.$spanish."\"\r";
}
$fp = fopen('theEXCELlist.csv',"w+");
fwrite($fp,$list,strlen($list)+100);
?>
</ul>
</body>
</html>

NotePad ++またはDreamweaverで開くことができ、すべて問題ありませんが、Excelではうまくいきません

4

1 に答える 1

1

おそらく、この問題の解決策は、PHP マニュアルの「マルチバイト文字列関数」セクションにあります。
つまり、PHP の出力ファイルは UTF-16 リトル エンディアンでエンコードされたファイル (BOM 付き) である必要があるようです。
どのバージョンの Excel を使用しているかはわかりませんが、この投稿は役に立つかもしれません。
別の方法として、Excel を開いて特殊文字を挿入し、CSV として保存して、最終的にこれらの文字が出力ファイルでどのようにエンコードされているかを確認することもできます。

于 2012-08-06T20:19:48.523 に答える