No.5ベストアンサー
- 回答日時:
質問者はPHPファイルだけに注目しているように見えます(誤解だったらごめんなさい)。
WebサイトというのはPHPファイルやHTMLファイルが混在しているのではないでしょうか。
私だったらあるWebサイトをUTF-8に変更するなら、すべてをUTF-8にしちゃいます。
【PHPファイル】
旧PHPファイルの文字コードをUTF-8に変換し、
htmlコードを吐く部分でシフトJISなどの文字列を見つけたらUTF-8に置換し、
念のためhtmlコードの1文字目を吐くより前に header("Content-type: text/html; charset=utf-8");を発行し、
ファイル保存時もUTF-8を確認して上書き保存します。
【HTMLファイル】
旧HTMLファイルの文字コードをUTF-8に変換し、
ファイル内でシフトJISなどの文字列を見つけたらUTF-8に置換し、
もしないなら<HEAD></HEAD>タブ内に
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
を書き、
ファイル保存時もUTF-8を確認して上書き保存します。
他にもデータベースの文字コードも神経使う部分ですし、
メールを送信するなら回答番号:No.2の通りISO-2022-JPも使用しなければなりませんが、
本件の場合まず上記のステップをテストしてみてはどうでしょうか。
それで良くならなければphp.iniの設定の確認と変更ですね。
筋から行けばまずphp.iniを調整すべきですが、php.iniの調整は精神的に疲れるので
私はあとまわしにしてどうしても必要なときだけ調整するようにしています。
話が前後しますが何よりもまず、Webブラウザで文字化け発生時、ブラウザの[表示]-[エンコード]で各種文字コードを試してみてどの文字コードでまともに読めるか確認、
ブラウザの[表示]-[ソース]でHTMLを生で表示してみて文字コード指定がどうなっているかを確認すれば、解決の糸口になるでしょう。
やってみたことと確認したことの情報を出せる範囲でもう少し詳しく出していただければ、レスポンスがつけやすくなります。
この回答への補足
おかげさまで、先日より確認のために、成功した3サイトとの違いを見つけ再試行してみましたら、文字化けなく、送受信も成功いたしました。
原因は、文字コード設定をきちんとできていない事でした。
HTMLのMetaの中だけ変更しただけで、「ファイル」から「文字/改行コード指定保存」をプルダウンメニュのUTF-8を選択して設定してありませんでした。
わかってみるとなんてないことでした。お騒がせしました。
いろいろとありがとうございました。
丁寧なお返事をありがとうございます。
そもそも、問題の4つめのサイトは昔作成したしたものに最近になって後からお問い合わせフォームを加えました。そのサイト作成時には初期のホームページビルダーを使用しました。
それに同じ仕様のままフォームのページだけタグうちで追加作成しました。
このサイトに関しましては、文字コードももちろんですが、最初からもう一度HTMLをきちんとしたものにコーディングしなおしたほうがいいようです。
少し時間がかかるかもしれませんが、再度トライしてみます。
No.4
- 回答日時:
私は初心者なのですが、何度も文字化けには苦労させられました。
私も同様な経験があります。メールの本文だけが文字化けしたりとか、yahooのWEBメールでは文字化けしていないのにgooのWEBメールでは文字化けしていたりとか・・・。文字化けの原因のほとんどが異なる文字コードで記載されたものが混在していることでした。
みなさまの回答を拝見してこの質問内容に関しての情報提供が不足していたことから、回答者のみなさまが適切な判断に至らなかったと反省しています。
私自身が全くPHPを理解していません本当の初心者で、お問い合わせフォームに挑戦しています。
4つのサイトにフォームを設置してそのうち3つはちゃんと動いています。PHPの部分だけをコピペーして4つめのサイトへフォームを設置したところこのようになりました。
なので、問題はPHPではなく、文字コードが原因だとは推測できるのですが、送られてきた文字化けした本文は確かにISO-2022-JPとなっていました。
既存のHTMLのページにPHP部分をコピペーして文字コードをShift_JJISからUTF-8へ変更しただけですので、そこに原因があるのだと思います。
なにはともあれ、この質問することに対しても勉強不足だということを再認識いたしました。
みなさまに一括してのお礼となり申し訳ありませんが、回答してくださいましたみなさまありがとうございました。
No.3
- 回答日時:
そもそもマルチバイトが有効になっているのかとか、php.iniでの文字コード設定はどうなっているかとか、ブラウザとのやり取りで文字コードは制御されているかとか、メールをUTF-8のまま送信していないかとか。
要素がありすぎてなんとも...
No.1
- 回答日時:
>設定をUTF-8 にして
送信部分の制御はできますか?
というかどの関数やライブラリで送信しているかわかりますか?
単にお問い合わせフォームといわれても・・・
とりあえず設定変更ができるなら本文のエンコードをJISにしてみては
どうでしょうか?
この回答への補足
PHPの編集のためにUTF-8にして作成したのですが、エンコードをShift_JISに変更するとページ自体からすべてが文字化けになってしまいます。
確認画面のphp部分を記しますが、
<?php
$okyakusama=$_POST['onamae'];
$mail=$_POST['mail'];
$kakunin=$_POST['kakunin'];
$toiawase=$_POST['toiawase'];
$flg=1;
if($okyakusama=='')
{
print' お名前が入力されていません。<br>';
$flg=0;
}
if($mail=='')
{
print'メールアドレスが入力されていません。<br>';
$flg=0;
}
if($mail!=$kakunin)
{
print'メールアドレスが違います。<br>';
$flg=0;
}
if($toiawase=='')
{
print'お問合わせ内容が入力されていません。<br>';
$flg=0;
}
if($flg==1)
{
print'お名前<br>';
print$okyakusama;
print'<br><br>';
print'メールアドレス<br>';
print$mail;
print'<br><br>';
print'ご用件<br>';
print$toiawase.'<br><br><br>';
print'<form><input type="button" value="戻る" onclick="history.back()" style="width:120px"></form>';
print'<form method="post"action="thanks.php">';
print'<input type="hidden" name="okyakusama" value="'.$okyakusama.'">';
print'<input type="hidden" name="mail" value="'.$mail.'">';
print'<input type="hidden" name="toiawase" value="'.$toiawase.'">';
print'<input name="submit" type="submit" style="width:120px" value="送信">';
print'</form>';
}
else
{
print'<form><input type="button" value="戻る" onclick="history.back()" style="width:120px"></form>';
}
?>
確認画面が表示された時点で、本文の日本語の内容だけが化けています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IEで表示すると文字化けして...
-
PHPExcelバッファへの書き込み...
-
3つ以上の論理積は利用可能なの...
-
.phpファイルが、表示されない
-
PHP4対応のサーバーではinclude...
-
PHPのif文でその処理を途中で抜...
-
フォントの色を変えるには?
-
zip圧縮の種類について
-
トランザクションが原因?DBに...
-
VB.NET 最下位のディレクトリ名...
-
.phpと.incファイルの違いはな...
-
PHPでFilename cannot be empty...
-
CSV出力にHTMLが入ってしまう
-
makefile でファイルをコピーす...
-
$_SESSION 有効期限をブラウザ...
-
CFileDialogの最初のディレクト...
-
FTPコマンドでディレクトリごと...
-
Subversionのリポジトリの削除
-
include先でのinclude元の変数...
-
PHPでファイルをダウンロードさ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPExcelバッファへの書き込み...
-
EclEmmaレポートのエクスポート...
-
phpログファイルの文字化けにつ...
-
PHPでのお問い合わせフォームの...
-
EUCからshift_jisに書き換えに...
-
特定ファイルのみ文字コード変換
-
緊急です!文字コードの設定ミ...
-
IIS5.1です。PHPをブラウザで開...
-
外国の掲示板で日本語も表示で...
-
携帯サイトをphpで作る際の文字...
-
PHPの文字コード変換について
-
一時的な文字化けについて
-
sjisとeuc-jpについて
-
IEで表示すると文字化けして...
-
PHPで「®」や特殊文字のエスケープ
-
PHPで韓国語の表示がうまくいき...
-
海外で作成されたPHPスクリプト...
-
PHPでの文字化け
-
MySQL→PHPでデータリストを作る...
-
文字集合範囲外の文字とパーセ...
おすすめ情報