• ベストアンサー

文字コードの変換について

現在、表示はPHPで文字コードはEUCで表示しています。 そのときには表示できるのですが、 表示したものを、SHIFT-JISにエンコードしてエクセルに表示するときに、文字コードの違いにより表示されないものがあります。 エンコードは $str = mb_convert_encoding($str, "SJIS", "auto"); と行っています。 EUCからSJISに変換するときに、何か特別なことを行う必要があるのでしょうか??

質問者が選んだベストアンサー

  • ベストアンサー
  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.4

Spreadsheet_WriteExcelを利用してはいかがですか? 私も以前、これを利用してPostgreSQLのデータをエクセルにはき出すコードを書いた事がありますが、普通に mb_convert_encoding($str,"SJIS","auto"); で上手くはき出せますよ。

aiurai54
質問者

お礼

ありがとうございます。 試してみます!!

その他の回答 (3)

  • touma15
  • ベストアンサー率0% (0/1)
回答No.3

$str = mb_convert_encoding($str, "SJIS", "EUC-JP"); でうまく動いていますが・・・。

aiurai54
質問者

お礼

$strに出力したい形式を挿入した後に、ダウンロードしているのですが、ここで問題があるのかもしれません。 ありがとうございました。

aiurai54
質問者

補足

$strは一度DBに保存したデータを取得しています。 DBはPostgresです。なのでEUCだと思っているのですが、、 このデータを配列に入れこみ、ブラウザで表示するときは うまくいってます。 このデータをエクセルに表示するために、タブ区切りでデータを保存しています。 上記のように、"EUC-JP"とすると、読めないような文字になってしまいます。 どこかで変換されているのしょうか?

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.2

質問に書かれている部分には、恐らく(typoがない限り)問題はないと思います。 問題の切り分けってやっかいですよね(^^;

aiurai54
質問者

お礼

そうなんですね~。ありがとうございます。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

"auto"じゃなくて"EUC"にしてもだめですか?

aiurai54
質問者

補足

EUCにすると変な文字に変換されてしまいました。。。

関連するQ&A