※ ChatGPTを利用し、要約された質問です(原文:フォームで送った文字がおかしくなる)
フォームで送った文字がおかしくなる
このQ&Aのポイント
フォームからPOSTでデータを送る場合、特定の一文字の漢字だけを記入すると正常に表示されません。
原因が分からず困っています。ひらがなやカタカナ、複数文字の場合は正常です。
a.phpとview.phpは両方とも日本語(EUC)改行=LFで保存しています。phpのバージョンは5.1.1です。
フォームから文字を記入して、送信ボタンを押すと次のページでその文字が表示されるという初歩的なプログラムをつくっています。しかし、フォームからPOSTでデータを送る場合、ある特定の一文字の漢字だけを記入して送信ボタンを押すと正常に表示されません。
例えば、「卒業」だと正常に表示されるのに「卒」だと「'」になってしまい、他にも「文」や「動」を一文字だけ記入すると、何も表示されません。ひらがなやカタカナ、複数文字の場合は全て正常です。原因が分からなくて困っています。
a.php (入力フォーム)
<HTML>
<HEAD>
<TITLE>テキスト送信のテスト </TITLE>
<META http-equiv="Content-Type" content="text/html; charset=EUC_JP">
</HEAD>
<BODY>
<FORM method="POST" action="view.php">
入力してください:
<INPUT type="text" name="name">
<BR>
<INPUT type="submit" value="送信">
</FORM>
</BODY>
</HTML>
view.php (表示するphpファイル)
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=EUC_JP">
<META http-equiv="Content-Style-Type" content="text/css">
</HEAD>
<BODY>
<?php
print $_POST["name"];
?>
</BODY>
</HTML>
どこか間違いがあるでしょうか?
a.phpとview.phpは両方とも日本語(EUC)改行=LFで保存しています。
phpのバージョンは5.1.1です。よろしくお願いします。
お礼
mbstring.encoding_translation = Off にしたら正常になりました。 参考にしている書籍がShift_JIS設定だったのでおかしくなっていたようです。 ありがとうございました。