WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:&#12486 ←こんな文字の変換について

0:[投稿] みなみ [2006/10/30 14:48 ] [環境:xp アパッチ]

はじめまして、formから送った文字について質問です。


CSVのデーターファイルから文章を読み込み、その文章を削除して良いのか、表示した後、削除ルーチンで、同一の文章のにデーターを送ったところ、ソース上の文字が、&#12486様な形になって困っています。画面上では読める文字なので問題ないのですが、IFで条件を指定する場合に、片方は普通の文字(言葉足らずですいません。)片方が&#から始まる文字なので、比較できません。jcode'convertでsjisにしてみたりしましたが、根本的に知識が足りないので、よく分かっていません。

ちなみに、input type="hidden"でデーターを送っているだけで、特に特別なことはしていませんし、今までは意図した動作をしていました。



1:[回答] m035 [2006/10/30 21:16 ][URL]

サーバサイドは良く分かりませんが、多分、
http://masaka.dw.land.to/mr/r2u.php
で変換できるようなHTMLの文字実体参照になっているからブラウザを通してみると読めるんだと思いますよ。
http://www.akatsukinishisu.net/itazuragaki/perl/string_to_numeric_charref.html
でも意図せずに変換されるケースについて書いてあるみたいです。


2:[回答] AC1号 [2006/10/30 22:57 ]

テは数値文字参照(文字実体参照ではない)ではカタカナの'テ'にあたります。

formをsubmitする際、通常はそのformのあるHTML文書の文字符号化方式でURIエンコードを行って送信します。しかし、何らかの理由によりHTML文書の文字符号化方式にはない文字を送ることになった場合、数値文字参照に変換してムリヤリ送信するブラウザがあります。

この場合では、HTMLファイルがShift_JIS以外の文字符号化方式だとブラウザに思われているのではないでしょうか。
meta要素などでShift_JISで書かれていると宣言していますか?

書き忘れましたが、テから元のカタカナに戻そうとするのはやらないほうがよいでしょう。なぜなら元のフォームで'テ'と書いても、'テ'と書いた場合でも区別がつきません。数値文字参照に変換されたあとに戻そうとしても既に手遅れです。変換される前に処置すべきです。

回答(必須): 状態:

お名前(必須):

URL:




[戻る]