4

PHPExcel を使用して utf8 mysql データベースから Excel シートにデータをエクスポートし、漢字を保持することに問題があります。私のmysql dbはutf8で、多数の漢字が含まれています。そのデータをマルチシートxlsファイル(excel5)にエクスポートしていますが、エクスポートするたびに漢字が「?」に変わります。utf8_encode() を試しましたが、うまくいきません。また、Excel5ライターの問題だと考えて、出力をexcel2007に変更してみました。

漢字を正しくエクスポートする方法はありますか? PHPファイル全体をutf8にする必要がありますか? もしそうなら、どうすればそうすることができますか?

ここに私が問題を抱えている部分があります:

$res2 = mysql_query("SHOW COLUMNS FROM ".$sheetnametemp);
while($row2 = mysql_fetch_array($res2, MYSQL_NUM)) {
  $counter = 2;
  $cell = $coltemp;
  $cell .= $counter;
  $objPHPExcel->getActiveSheet()->SetCellValue($cell, $row2[0]);
      $result = mysql_query("SELECT * FROM ".$sheetnametemp);
      while($row = mysql_fetch_array($result))
      {
        $counter++;
        $cell2 = $coltemp;
        $cell2 .= $counter;
        utf8_encode($row[$row2[0]]);
        echo "<br />";
        $objPHPExcel->getActiveSheet()->SetCellValue($cell2,utf8_encode($row[$row2[0]]));
      }

多言語のカタログデータベースであるため、これらの漢字を使用する必要があるため、英語に変更しても役に立ちません。また、とにかくその情報が役立つ場合、私は現在 Xampp を搭載した Mac を使用しています。

4

1 に答える 1

4

実行中の "SET NAMES utf8" または mysql_set_charset("UTF8", $conn); を設定します。データベースへの接続が UTF-8 を使用していることを確認します。

echo mysql_client_encoding($conn); を使用して接続をテストできます。

もう utf8_encode() を呼び出そうとしていないことも確認してください。

注: Excel ファイルはコードページを使用してファイル内で使用されている文字セットを識別しますが、PHPExcel はそのコードページを内部でハードコードされた UTF-8 の値に設定するため、ファイル内のすべての文字列コンテンツは UTF-8 である必要があります。 Excel は、MS Excel GUI のワークシートを UTF-8 として解釈することも認識しています。Excel 自体でスプレッドシートを表示したときに漢字が表示されない場合は、MS Excel の言語設定をチェックして、中国語を処理するように構成されているかどうかを確認します。

クレジット: @Mark Ba​​ker . 再度、感謝します。

于 2012-10-04T20:12:12.693 に答える