![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
phpスクリプトで
フォーム入力→確認画面→ログファイルに書き込み→別スクリプトによりログファイル読み込み→表示
というスクリプトを作ったのですが、フォームに本文を入力した際に
確認画面で本文を見ると、文字化けしてしまいます。
例えば、芸能界と書けば芸柏lになってしまうなど、何故かある一定の文字が書き込めません。(他の大半の文字は文字化けしない)
おそらく、euc-jpではなくSJISでphpスクリプトを作っているためだと思うのですが、どうしてもSJISで書きたい場合、何か解決方法はありますか?
また、表示するときにSJISになっていればいいため、入力段階などではeuc-jpでも大丈夫です。
ご教授お願いします。
No.4ベストアンサー
- 回答日時:
さらに追記です(汗
現象だけ見ると、magic_quotes_gpcがoff(\が挿入されない)環境なのに、stripslashesを通してしまっていて、日本語の中の「\」が消されてしまっているように思えます。
このあたりは実際のコードを読まないと何とも言えませんが、ANo.2で書いたようにget_magic_quote_gpc()でon/offを判断して両方に対応させれば問題はありません。
No.3
- 回答日時:
#ANo.2です。
あわてて書いたらtypoが・・> mb_internal_language('euc-jp');
mb_internal_encoding('euc-jp');
ですね(大汗
No.2
- 回答日時:
「能」などが化けるとしたら「5c問題」ですね。
http://www.shtml.jp/mojibake/sjis_cgi.html#php
また、magic_quotes_gpcがONであればフォームから受け取ったデータはstripslashesを通さないといけません(これはSJISでなくてもです:asciiのみでも起こりうる)。
http://www.php.net/manual/ja/function.get-magic- …
基本的にSJIS以外の文字コードで書きましょう(EUC-JPやUTF-8)
mb_language('ja');
mb_internal_language('euc-jp');
mb_http_output('SJIS');
ob_start('mb_output_handler');
としておいて
foreach ($_POST as $key->$value) {
if (get_magic_quotes_gpc) { $value = stripslashes($value); }
$_POST[$key] = mb_convert_encoding($value, 'EUC-JP', 'SJIS')
}
でフォーム入力は変換します(出力はoutput_handlerの変換にまかせる)。
ありがとうございます。確かに、shimixさんの言うとおり行えば
文字化けを直すことができました。
まだまだわからないことがたくさんあり、スクリプトも稚拙なものしか作れませんが、徐々に勉強していこうとおもいます。
今回はわかりやすく、理解しやすい回答をありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- 政治 私の発明した「二階建て漢字」は使えるでしょうか? 3 2023/02/08 16:40
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/06/15 14:11
- JavaScript 読み込んだQRコードをフォームに受け渡したい 1 2023/05/18 11:18
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Ameba(アメーバブログ) アメブロは、HTMLのタグの入力を許さないブログ・サイトですか? 1 2023/06/18 18:48
- ホームページ作成・プログラミング アメーバ・ブログは"HTMLタグ"を許可してないのですか? 2 2023/06/17 21:08
- その他(ソフトウェア) ソースネクストアプリをインストールし、製品登録で半角英数字が入力できない 5 2022/07/03 22:44
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
csvからデータベースへ取り込み...
-
PHPExcelで日本語(漢字)ファ...
-
XML出力時の日本語一部文字化け
-
Linux + phpで2バイト文字のパ...
-
php.iniを変更したのにUFT-8が...
-
透過PNGが透過されない!!
-
CFileDialogの最初のディレクト...
-
【file_exists】ファイルが存在...
-
フォントの色を変えるには?
-
VB6にてメールを送信する方法
-
C# Excelファイルへの画像挿入。
-
フォームで戻った際に入力済み...
-
.htaccessにphp_valueが使用できな
-
別ファイルの変数を呼び出した...
-
3つ以上の論理積は利用可能なの...
-
onedrive にexcelファイルをア...
-
PHPのif文でその処理を途中で抜...
-
$_SESSION 有効期限をブラウザ...
-
リクエストメソッド
-
pg_exec()、pg_result()は、使...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
i18n_convert と mb_convert_e...
-
Content-Typeが機能していない?
-
mb_convert_encoding で?になる。
-
エンコーディングについて
-
scandir関数取得結果の文字化け
-
ハシゴの「高」が「?」に置き...
-
$str=preg_replace('/\\u3000/'...
-
データベースから取り出した日...
-
XML出力時の日本語一部文字化け
-
mysql utf8、php・euc-jp で出...
-
phpのhex2binについてphpで、ut...
-
POST文字列が化ける(外字)
-
PHPの文字化けした文字だけ削除...
-
csvからデータベースへ取り込み...
-
PHPExcelで日本語(漢字)ファ...
-
euc-jpからutf-8の文字コード変...
-
年と曜が文字化け・・・対応策...
-
htaccessでの文字コード設定に...
-
php5,MySQL5で文字化けが起こる
-
windowsXP、XAMPPでメーラーMer...
おすすめ情報