dポイントプレゼントキャンペーン実施中!

現在、表示はPHPで文字コードはEUCで表示しています。
そのときには表示できるのですが、

表示したものを、SHIFT-JISにエンコードしてエクセルに表示するときに、文字コードの違いにより表示されないものがあります。

エンコードは
$str = mb_convert_encoding($str, "SJIS", "auto");
と行っています。

EUCからSJISに変換するときに、何か特別なことを行う必要があるのでしょうか??

A 回答 (4件)

Spreadsheet_WriteExcelを利用してはいかがですか?


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

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

お礼日時:2005/01/17 15:24

$str = mb_convert_encoding($str, "SJIS", "EUC-JP");



でうまく動いていますが・・・。

この回答への補足

$strは一度DBに保存したデータを取得しています。
DBはPostgresです。なのでEUCだと思っているのですが、、

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

補足日時:2005/01/11 18:39
    • good
    • 0
この回答へのお礼

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

ありがとうございました。

お礼日時:2005/01/12 09:30

質問に書かれている部分には、恐らく(typoがない限り)問題はないと思います。


問題の切り分けってやっかいですよね(^^;
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/01/05 13:10

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

この回答への補足

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

補足日時:2005/01/05 13:07
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!