みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

コード上の埋込み漢字コードの文字化け

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 で出力する必要があるのですが、やり方がわかりません。
ご存知の方教えていただけると助かります。

投稿日時 - 2008-06-19 12:47:21

QNo.4112539

すぐに回答ほしいです

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

ファイルの文字コードはなんですか?
ファイルの文字コードと文字列を記入する際の
文字コードが違うのでは?

投稿日時 - 2008-06-20 16:57:46

お礼

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

投稿日時 - 2008-06-21 11:43:45

ANo.2

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

1.全てのファイルを UTF-8 で保存していますか?
2.php.ini で mbstring.http_output が指定されていて、UTF-8 以外になっていませんか?

全てのファイルを UTF-8 にするのであれば、mb_convert_encoding() は不要なはずです。

投稿日時 - 2008-06-19 14:43:39

お礼

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

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

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

投稿日時 - 2008-06-21 11:47:19

あなたにオススメの質問