PHPで動的にCSVを生成・DLできるようなツールを作ってます。


スクリプトの文字コードがUTF-8で、Excelで利用可能にしたいので最後にSJISに変換[mb_convert_encoding($con , "SJIS" , "AUTO")]しているのですが、

必ずファイルの先頭(この場合excelのA1セル)に「ソ・」や「ソ・ソ・」という化けた文字が出来てしまいます。

いくつかのphpファイルをインクルードして行なってたのですが、インクルードすればするほど「ソ・」がファイルの先頭に増えていくので、http://feedtailor.jp/oishi/2007/06/php_2.html ここにあることかなと思い、PHPの終了タグを省略するなどして見ましたが、結果変わりません。

もちろん、ファイル内ではcsvに書き込む部分以外では、一切echo やprintは行なっておりません。

対処方ご存知の方、いらっしゃいましたらご解答宜しくお願い致します。

回答の条件
  • 1人2回まで
  • 登録:2008/09/18 12:04:32
  • 終了:2008/09/18 13:39:08

ベストアンサー

id:iww No.1

いわわ回答回数101ベストアンサー獲得回数102008/09/18 13:13:02

ポイント200pt

PHPファイルにBOMがついてると思うので、PHPファイルをすべて

BOMなしで保存しなおせば解決すると思います。

秀丸なら「名前を付けて保存」でBOM無しを選びましょう。

他のエディタでもまあなんかあるはずです。

UTF-8 - Wikipedia

id:ruijio

iwwさん

回答有難うございました。

無事解決しました。BOMとは初めて耳にしました。今まで、utf-8 と utf-8nは何が違うんだろうと思ってましたが、BOMの事だったのですね。

terapadでutf-8nで保存し解決いたしました。

有難うございました。

2008/09/18 13:38:25
  • id:ruijio
    質問者です、すみません。

    PHPのVersionは 5.2.5 です。

    php.ini のmb関係は

    mbstring.detect_order auto
    mbstring.encoding_translation Off
    mbstring.func_overload 0
    mbstring.http_input auto
    mbstring.http_output pass
    mbstring.internal_encoding UTF-8
    mbstring.language Japanese
    mbstring.strict_detection Off
    mbstring.substitute_character no value

    となります。レンタルサーバーなのでこの辺の仕様は変えられないと思います。
  • id:ahirusan
    nkfというツールで文字コード変換するという手もありますよ。UNIX(Linux)、Windowsともにあります。とても便利で、伝統的なツールです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません