漢字のURLエンコードが%の3桁になります!
[上に]
[前に]
[次に]
ラウォッチ
[E-Mail]
2000/01/11(火) 17:39:13
フォームのmailto:でメールした時に、
漢字(2バイト文字)はURLエンコードされ、
たとえば、SJIS「あ」コード0x82A0場合、%82%A0になりますが、
「池」など本来 %92%72になるべきなのに %92r とかになります。
また、JISの「は」は %24O で「ン」は %25sになるみたいです。
なぜ %の3桁になるのか、わかる方、教えて下さい。
@
2000/01/11(火) 17:53:35
モジラ5かIE5を使ってませんか?
こいつらはURLエンコードが%4桁のユニコードになるみたいです。
@
2000/01/11(火) 18:32:32
ごめん間違いm(_ _)m
rの文字コードは0x72で、
つまり%xxのところがASCII文字に有るものは
URLエンコードされないみたいです、
http://www.tohoho-web.com/wwwkanji.htm
のASCIIコード表を見てください。
ラウォッチ
2000/01/11(火) 19:08:40
@さん、理解できました、ありがとうございました。
こういう現象は、今のところmailto:の時だけですよね。
CGIで受けた時は、%の2桁ですよね。確か...。
ラウォッチ
2000/01/11(火) 20:26:35
[[解決]]
自己レスです。
>CGIで受けた時は、%の2桁ですよね。確か...。
もたぶん、mailto:と同じでしょう!
(ちゃんと対応していた 昔作ったルーチン...ホッ)
ラウォッチ
2000/01/12(水) 08:55:32
自己レスパート2
URLエンコードを再度調べました。
A〜Z、a〜z、0〜9、* - . @ _ はそのまま。
半角スペースは + に変換。
その他はすべて % に16進の2桁の文字コード。
たとえば、「あ」0x2422なら %24%22になります。
ですので、漢字の場合、2バイトを1バイトづつにした時、
A〜Z、a〜z、0〜9、* - . @ _のコードと同じだったら %xxにならず、
そのまま表示され、%92rのようにあたかも%の3桁になります。
@
2000/01/12(水) 09:11:35
上記補足
EUCでは日本語文字は必ずASCIIの範囲外になります、
このような問題はSJISでおこります。
[上に]
[前に]
[次に]