• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エンコーディングについて)

エンコーディングについての設定方法と問題

このQ&Aのポイント
  • エンコーディングについての設定方法と問題について解説します。
  • mbstring関数を使用してエンコーディングの設定を行いたい場合、php.iniファイルやスクリプト上での設定方法があります。
  • しかし、mb_http_input()関数での設定がうまく表示されない場合があり、他の人も同様の問題を抱えている可能性があります。また、mb_http_input()関数とini_set()関数の違いについても説明します。

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

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

mb_http_input()関数は、設定を確認したり、変更する関数ではありません。 そのためmbstring.http_inputの設定を変更するには ini_set("mbstring.http_input", "auto"); で行う必要があります。 同様に設定を表示するには echo ini_get("mbstring.http_input"); とする必要があります。 mb_http_input()が何をする関数かというと入力値があった場合にその入力された文字コードの種類を表示します。$_GET,$_POST,$_COOKIEが全て空の場合には入力値自体がないので何も表示されません。 test.php <?php echo mb_http_input(); ?> 上のプログラムをhttp://example.com/test.phpでアクセスしても何も表示されませんが http://example.com/test.php?test=a でアクセスすればたぶん"ASCII"と表示されます。 またhttp://example.com/test.php?test=てすと でアクセスすれば入力された文字コードにより "SJIS"とか"EUC-JP"と表示されるはずです。

higenonorimaki
質問者

お礼

早速のお返事、ありがとうございます。mb_http_input()の使い道を勘違いしていたみたいですね。

その他の回答 (1)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

追加ですけど mbstring.encoding_stranslation = Off の場合には mb_http_input() は表示されません