HTML特殊文字に変換されてしまう件

このQ&Aのポイント
  • phpで構築されているシステムの入力フォームに特定の文字を入力すると、表示される画面でHTML特殊文字に変換されてしまう問題が発生しています。
  • この問題はCentOS 3.5 (Final)とPHP 5.2.6の環境で発生しています。
  • 問題を解決するためには、特殊文字を変換せずに表示させる方法を見つける必要があります。
回答を見る
  • ベストアンサー

HTML特殊文字に変換されてしまう件

phpで構築されているシステムにある入力フォームにて、 "®" "©" "Ø" "−" などの文字を入力すると、 POSTされたこれらの内容を表示する次画面にて、 HTML特殊文字の文字表記、または10進表記に変換されて表示しまいます。 ※このOKWAVE質問フォームでも変換されてしまいます。  実際に入力フォームに入力される文字は、上記10進表記ではなく、  1文字です。   これらを変換することなく表示させるにはどうすればよいのでしょうか。 --------環境-------- ・CentOS release 3.5 (Final) ・PHP 5.2.6

  • PHP
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • warez
  • ベストアンサー率57% (29/50)
回答No.2

実体参照が全て変換されてもいいなら html_entity_decode かな?

その他の回答 (1)

  • DiveKo
  • ベストアンサー率70% (7/10)
回答No.1

htmlspecialchars ()を使われて、やりたいこと、できませんかね? 参考 http://jp.php.net/htmlspecialchars

関連するQ&A

  • PHPでHTMLからPOSTされたデータが文字化けします。

    PHPでHTMLからPOSTされたデータが文字化けします。 超初心者ですので表現に誤りがあるかもわかりませんがお許しください。 現在、Win2003・MySQL5.1・PHP5.2と言う環境で簡単なデータベースを作成して、HTMLから検索して 一致したデータを表示させると言うものを作成しています。 検索欄に入力した一部の文字がどうしても文字化けしてしまい解決できません。 詳しくはまだ理解できていないのですが、おそらく検索窓に入力した文字がPOSTされて、それを受けたPHPが文字化けした文字でMySQLのデータベースを検索しようとしているのではないかなっと思ってます。 文字コードはすべてShift-JISで行っているつもりです。 たとえば、 全角の"。"や"?"などの2バイトコードが81**(違ってましたらすみません。。)入力すると "。"は"B"に文字化けされ、"?"は"H"に文字化けします。 また、"院"や"法"などの**40を入力すると"・>  <input type="と表示されて検索ボタンも消えておかしくなってしまいます。 これだけの情報ではお答えして頂けないかもわかりませんが、他にどのような情報があればいいのかもよくわかりません。 わかる範囲で結構ですのでご教授頂けないでしょうか。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • マルチバイト文字の大文字、小文字を区別せずに置換

    ある文章に対して、フォームから入力された文字の部分の色を変えて表示するという事をしたいです。 フォームから入力された文字列が[php]として、 php、PHP、Php、phP、php、PHP、Php…など、全角、半角、大文字、小文字関係なく色を変えたい場合、 半角の文字列はeregi_replace()でできると思うのですが、全角の場合はどのように記述すれば良いのでしょうか。 フォームから入力された文字列を全角に変換してmb_eregi_replace()を行ってみたのですが、うまくいきませんでした。 文章を半角に変換すればできるとは思いますが、出来る限りそれはしたくありません。 特に一つの関数で…という事は考えていません。 何か良い方法がありましたらアドバイスをお願い致します。

    • ベストアンサー
    • PHP
  • フォームで送った文字がおかしくなる

     フォームから文字を記入して、送信ボタンを押すと次のページでその文字が表示されるという初歩的なプログラムをつくっています。しかし、フォームから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です。よろしくお願いします。

    • ベストアンサー
    • PHP
  • 入力フォームの文字変換について

    宜しくお願いします。 フォームで入力された文字をphp上で全角⇔半角変換や、空白の削除などをする方法を教えて下さい。

    • ベストアンサー
    • PHP
  • PHP 入力フォームにあらかじめ文字を入れておく

    PHPプログラミングをしております。 入力フォームを作成しているのですが、前のページで入力し、受け取った内容をもう一度表示させたいのです。 入力フォームにあらかじめ文字を入れておくのは、フォームタグに value="文字" をつけたせば良いのはわかったのですが、 今回文字を$text = $_POST['name']; という形で受け取っています。 入力フォームにあらかじめこの受け取った$text を表示させるにはどうすれば良いのでしょうか。

    • ベストアンサー
    • PHP
  • HTMLファイルに、文字を書き込めますか?

    お世話になります。 HTMLで1ページだけ作成したとします。 そのページに、入力フォームと送信ボタンを配置して 入力フォームに文章を入力して、送信ボタンを押すと 入力した文章が反映するのは可能でしょうか? PHPを用いたらおそらくできるとは思うのですけど 実際はできるのでしょうか? みなさんだったら、どういう方法をするか教えてください。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • 絵文字をHTMLコードに変換しない

    恐れ入ります。 htmlからform送信で絵文字を含む文字列を送信した場合、 受け取る側はHTMLコードに変換してしまいます。 LINEがHTMLコードを読み込まない為文字化けしてしまいます。 プログラム上に直接絵文字を直貼りするとちゃんと表示されるのですが、form送信時にコードに変換しない方法などはあるのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • HTMLフォームからの挿入ができません。

    HTMLのフォーム (a.html) から入力したデータを、別のページ (b.php) に送信して、送信先のページでデータベースに挿入させる システムを開発しているのですが、どうしても挿入されません。 文字化けして挿入されるわけではなく、レコードの挿入自体が 行われないのです。 b.php のスクリプトで直接INSERT文を実行させると、問題なく 挿入されるのですが… POST形式でデータの送信を行っており、その部分に問題があると 考えられますが、原因がさっぱり分かりません。 ちなみに、運用している環境は Apache 2.0.55 MySQL 5.0.15 PHP 5.0.5 です。 文字コードは、Shift_JISで統一しています。

    • ベストアンサー
    • MySQL
  • PHPとHTMLを使って(早急にお願いします)

    はじめまして。 課題のデータが消えてしまい早急の提出物になるので 丸投げになるんですがどうかよろしくおねがいします。 ブラウザのフォームを使って携帯電話の形式チェックが行えるようにする。 フォームの内容 1、入力欄 形式:test name値:mobile value値:空(初期値) 2、サブミットボタン value値:確認する 3、フォームメソッド post 携帯番号入力後「確認する」ボタンを押す (1)入力フォーム再表示 (2)入力フォームのmobileの欄に入力した携帯番号表示 (3)入力した値が携帯番号の形式だったら「携帯番号です」と画面表示 (4)入力した値が携帯番号ではない場合「携帯番号じゃありません」と画面に出力 ファイル名 mobile.php ※PHPでpostメソッドを利用して送信したデータはスーパーグローバル変数の$_POSTに格納される よろしくお願いします。

    • 締切済み
    • PHP
  • 文字が正しく表示されない

    PHPを使っていますが、文字化けというわけではないのですが フォームからPOSTで送信して、画面に表示したときなどに、 例えば「十一」という文字が「十\一」というように「\」が 入ってきます。 このほかにも、特定の文字の部分で「\」が入って表示されて しまいます。 メールを送信したりしたときも、メール本文の中に「\」が入って 表示されたりします。 これは、エンコードの変換が悪いからなるのでしょうか。 どうも、理解できません。 解決法のヒントになる部分だけでも結構ですので、どなたか 教えていただけ無いでしょうか。

    • ベストアンサー
    • PHP

専門家に質問してみよう