- ベストアンサー
文字コードの変換について
現在、表示はPHPで文字コードはEUCで表示しています。 そのときには表示できるのですが、 表示したものを、SHIFT-JISにエンコードしてエクセルに表示するときに、文字コードの違いにより表示されないものがあります。 エンコードは $str = mb_convert_encoding($str, "SJIS", "auto"); と行っています。 EUCからSJISに変換するときに、何か特別なことを行う必要があるのでしょうか??
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Spreadsheet_WriteExcelを利用してはいかがですか? 私も以前、これを利用してPostgreSQLのデータをエクセルにはき出すコードを書いた事がありますが、普通に mb_convert_encoding($str,"SJIS","auto"); で上手くはき出せますよ。
その他の回答 (3)
- touma15
- ベストアンサー率0% (0/1)
$str = mb_convert_encoding($str, "SJIS", "EUC-JP"); でうまく動いていますが・・・。
お礼
$strに出力したい形式を挿入した後に、ダウンロードしているのですが、ここで問題があるのかもしれません。 ありがとうございました。
補足
$strは一度DBに保存したデータを取得しています。 DBはPostgresです。なのでEUCだと思っているのですが、、 このデータを配列に入れこみ、ブラウザで表示するときは うまくいってます。 このデータをエクセルに表示するために、タブ区切りでデータを保存しています。 上記のように、"EUC-JP"とすると、読めないような文字になってしまいます。 どこかで変換されているのしょうか?
- kusukusu
- ベストアンサー率38% (141/363)
質問に書かれている部分には、恐らく(typoがない限り)問題はないと思います。 問題の切り分けってやっかいですよね(^^;
お礼
そうなんですね~。ありがとうございます。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
"auto"じゃなくて"EUC"にしてもだめですか?
補足
EUCにすると変な文字に変換されてしまいました。。。
お礼
ありがとうございます。 試してみます!!