[PHP-users 14187] Spreadsheet_WriteExcelで日本語が文字化け

HAYASHI,Akiyoshi php-users@php.gr.jp
2003年 3月 23日 (日) 06:47:59 JST


林です。

こんにちは。
PostgreSQLのデータをExcelで帳票出力させるアプリを作成していますが、
文字化けしてしまい悩んでいます。

過去のMLの記事を参考に
http://phpclasses.psbweb.com/browse.html/package/767.html

からSpreadsheet_WriteExcelをダウンロードしてhtdocsに置いて、
Excelファイルが生成・表示されるところまではうまくいったのですが、
試しに日本語を入れると、文字化けしてしまいます。
(英語は当然正常に表示されます)

スクリプトはEUCで書いていますので、mb_convert_encoding()
でSJISに変換してみましたが、ダメでした。
他の文字コード種も手当たり次第変えてみましたがやっぱり
字数が変わるだけで文字化けには違いありません。

何がダメなんでしょうか?

どなたかよろしくお願いします。



★使用したスクリプト

  require_once('Worksheet.php');
  require_once('Workbook.php');

  function HeaderingExcel($filename) {
      header("Content-type: application/vnd.ms-excel");
      header("Content-Disposition: attachment; filename=$filename" );
      header("Expires: 0");
      header("Cache-Control: must-revalidate,
post-check=0,pre-check=0");
      header("Pragma: public");
      }

  // HTTP headers
  HeaderingExcel('test.xls');

  // Creating a workbook
  $workbook = new Workbook("-");

  // Creating the first worksheet
  $worksheet1 =& $workbook->add_worksheet('First One');

  //★この項目が文字化けしてしまいます★
  $worksheet1->write_string(0, 0, mb_convert_encoding("日本語テスト
","SJIS"));

  $workbook->close();


--
林 昭良
akih@se.starcat.ne.jp



PHP-users メーリングリストの案内