みんな! に気をつけてください。

誰しもやったときあるとは思います。入力・保存されたデータの半角スペースを に変換するということ。
でも、これ・・・INPUTなどのValueにも同じようにすると危険ですっ!!

なんと!どう見ても半角スペースに見える は、実は半角スペース(0x20)ではないスペース(0xa0)なのです。

こんなHTMLを作って、「送る」ボタンをクリックして、パラメーターを見てみましょう。

<html>
	<head>
		<title>NBSPが</title>
	</head>
	<body>
		<form method="GET">
			<input type="text" value="A&nbsp;B" name="param1" />
			<input type="password" value="C&nbsp;D" name="param2" />
			<input type="hidden" value="E&nbsp;F" name="param3" />
			<input type="submit" value="送る" />
		</form>
	</body>
</html>

たぶん、↓Shift_JISで保存して、IE(8で確認)で試したならばこんな結果になるはずです。

param1=A%A0B¶m2=C%A0D¶m3=E%A0F

次に、param1のAとBの間のスペース消して、そこに半角スペースを入力して実行してみましょう。
たぶん、↓Shift_JISで保存して、IE(8で確認)で試したならばこんな結果になるはずです。

param1=A+B¶m2=C%A0D¶m3=E%A0F

他のブラウザ・文字コードでやってみても、結果が多少違うような感じはしますが、明らかに思っている半角スペースじゃない半角スペースを送っていると思います。


そんなわけで、
みなさん、安易な変換には気をつけてくださいね。