• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:漢字の一部が文字化けする)

漢字の一部が文字化けする原因と解決方法

このQ&Aのポイント
  • カタログの請求フォームで漢字の一部が文字化けする問題が発生しています。
  • 漢字の「平行棒」と打つと「・燥欠棟-s棒」と文字化けします。
  • この現象はIE7で化けますが、FF3.5では化けません。解決方法をご存知の方は教えてください。

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

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.2

<?php phpinfo(); ?>は動きますか? mbstring.encoding_translation mbstring.http_input mbstring.http_output の設定はどうなってますか? ソースコード内でmb_convert_xxxという関数は使ってますか?

charagon
質問者

お礼

<?php phpinfo(); ?>は動きます。 mbstring.encoding_translation = Off mbstring.http_input = auto mbstring.http_output = SJIS となっておりました。↑のせいなんですかね? これだけのプログラムで成り立っていないことから、php.iniの設定を変更するのはよくないと思い、.htaccess を作成して、 あげてみたところひとまず解決をばいたしました。 大変助かりました。有難うございました。

その他の回答 (1)

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.1

こないだの質問ですが、参考になりますか? http://oshiete1.goo.ne.jp/qa5277163.html

charagon
質問者

お礼

有難うございます。 こういうように確かに一部だけ文字が化けてしまうのです。 が、教えていただいた部分を参考に触ってみたのですが、変わらないです。 きっとこちらがイマイチ、ちゃんと理解してないところもあるかもしれないですが。 <?php if($_SERVER['REQUEST_METHOD'] == "POST") { if(ini_get('magic_quotes_gpc') == "1") { foreach($_POST as $k => $v) { $_POST[$k] = stripslashes($v); } } } if($_SERVER['QUERY_STRING'] != "") { if(ini_get('magic_quotes_gpc') == "1") { foreach($_GET as $k => $v) { $_GET[$k] = stripslashes($v); } } } $_POST['machigai'] = 0; $flg1 = 0; $flg2 = 0; $flg3 = 0; $flg4 = 0; $flg5 = 0; $catalog = $_POST['catalog']; //変数にセット、特殊文字をエスケープ $name = htmlspecialchars($_POST['name']);      (省略) ?> <?php $catalog = Mb_Convert_Kana($_POST['catalog'],"S"); $catalog = str_replace("<BR>","\n",$catalog); //文字列の置換 ?> <?php if ($_GET['catalog'] == "") { if ($_POST['catalog'] == "") { print "カタログが選択されていません。\n<BR>"; print "ブラウザの「戻る」ボタンを押して戻り、選択して下さい。\n"; } else { $catalog = $_POST['catalog']; print $catalog; print ("<input type='hidden' name='catalog' value=\"$catalog\">"); } } else { $catalog = $_GET['catalog']; print $catalog; print ("<input type='hidden' name='catalog' value=\"$catalog\">"); } ?> カタログ名の出力はここでしていると思うのですが。

関連するQ&A