うちのカレーにはこれが入ってる!って食材ありますか?

PHP のソースコード上に埋め込んでいるべた書きの2バイトコードが
文字化けを起こしてしまいます。以下、経緯を含め詳しく書きます。

1.HTMLのFORMよりデータを入力。(toiawase.html)
2.PHPにて、入力データをWebブラウザ上に表示して確認。(mail_kakunin.php)
3.PHPにて、確認済みのデータをmail()関数にて送信。(mail_send.php)

上記の状態で正常動作を確認。

「1」の toiawase.html にて、charsetをUTF-8にする必要があり
下記のように charset のみ書き換えました。
<meta http-equiv="Content-Type" content="text/html"; charset="UTF-8" />

すると以下の不具合が発生しました
 ・上記の「2」の部分ですでに入力したデータのみ文字化けを起こす。
 ・当然、「3」にての送信でも入力データのみ文字化けして送られる。

よって、「2」のmail_kakunin.php にも以下の分を追加しました
<meta http-equiv="Content-Type" content="text/html"; charset="UTF-8" />

すると以下のような不具合が発生しました
 ・上記の「2」の部分で入力データは mb_convert_encoding() で UTF-8
  に変換し、文字化けしませんが、今度はPHPのコーディングでべた書きの2バイト
  コードが文字化けを起こす。

HTML上で、UTF-8 の漢字コード指定なので、PHPにべた書きの2バイトコードも
UTF-8 で出力する必要があるのですが、やり方がわかりません。
ご存知の方教えていただけると助かります。

A 回答 (2件)

ファイルの文字コードはなんですか?


ファイルの文字コードと文字列を記入する際の
文字コードが違うのでは?
    • good
    • 0
この回答へのお礼

ご指摘ありがとうございます。プログラムや環境の設定に気をとられて、エディタでベタ書きする文字コードのことをすっかり忘れていました。
S-JISになっていたので、UTF-8にしたらちゃんと表示されました。
ありがとうございました。

お礼日時:2008/06/21 11:43

1.全てのファイルを UTF-8 で保存していますか?


2.php.ini で mbstring.http_output が指定されていて、UTF-8 以外になっていませんか?

全てのファイルを UTF-8 にするのであれば、mb_convert_encoding() は不要なはずです。
    • good
    • 0
この回答へのお礼

1番でビンゴでした。漢字コードを S-JISでファイル自体を保存していたので起こった文字化けでした。

2番は、メール送信するために、S-JISに変更する必要があるのです。DB登録ではEUC-JPに^^;

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

お礼日時:2008/06/21 11:47

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


おすすめ情報