質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

468閲覧

フォームで「表示」や「申込」送信すると文字化けする。他の文字は問題ありません。どうしたら文字化けせずに送信することが出来るのでしょうか。

ringo

総合スコア170

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2014/02/09 13:01

■form.html
`

<form action="./action.php"> <input type="submit" name="b" value="申込"> </form> `

■action.php
`

<?php echo $_POST['b']; ?>

`

のように単純なコードにいても文字化けを起こしてしまいます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

この問題は、いわゆる5C問題と言われるものです。
ググったら色々出てきます。
質問で上げられている文字以外にも下記のような文字も同じく文字化けが発生します。
「―」,「ソ」,「噂」,「欺」,「圭」,「構」,「蚕」,「十」,「申」,「貼」,「能」,「表」,「暴」,「予」,「禄」,「兔」

この問題は実装する文字コード「Shift-JIS」で発生するもので、
他の文字コード「EUC-JP」や「UTF-8」で実装することで解決します。

特別「Shift-JIS」で実装する必要が無ければ、
「EUC-JP」や「UTF-8」で実装することをおすすめします。
昨今は、一般的に「UTF-8」で実装することが多いようです。

理由は「世界標準」だからとかASCIIコードとの互換性等色々ありますが、
その辺は今回とは直接関係なので、ググって頂ければと思います。

仮に「Shift-JIS」で実装する必要がある場合は、php.ini内に「Magic Quotes GPC」というオプションがあります。
これがデフォルトでONになっています。何の設定かと言うと、自動でエスケープ文字を取り除く設定です。

■php.ini
magic_quotes_gpc = Off
とすることで解決することが出来るかと思います。

文字コードに影響しない処理を書くとしたら
if (!get_magic_quotes_gpc()) { $b = (($_POST['b'])); } else { $b = (addslashes($_POST['b'])); }

PHPのマニュアルを見ると
「警告:この機能は PHP 5.3.0 で 非推奨となり、 PHP 5.4.0 で削除されました。」なっていますので、オフにすることが5.4以前のバージョンを利用しているのでしたら、
オフにすることが推奨されています。

投稿2014/03/18 00:39

jackall

総合スコア98

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問