このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

URIにおける特殊な文字

URIのなかに生で書いてもいい記号文字ってなんだっけ? わからんわ。

次のようなJavaScript断片を実行してみました。


var s = "";
for (var i = 32; i <= 126; i++) {
var c = String.fromCharCode(i);
if (!c.match(/[a-zA-Z0-9]/)){
// 英数字以外
s += c;
}
}
var t = encodeURIComponent(s);
t = t.replace(/%[0-9a-f][0-9a-f]/g, "");
var r = s + "\n" + t

変数rを表示してみると:

  • 元の記号達:「 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~」
  • 無変換記号:「!'()*-._~」

ふーん、「!'()*-._~」が安全な記号か。

encodeURIでやってみると:

  • 元の記号達:「 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~」
  • 無変換記号:「!#$&'()*+,-./:;=?@_~」

あー、なるほど。「/:@#?」はURI内で特別な意味で使いますね。「=&+」もクエリ・ストリング内では特殊。「$,;」も予約されているようですが、用途知らん。RFC? いま読む気ない。

[追記]ヤバい記号は「 "<>[\]^`{|}」(最初は空白)ってことね。[/追記]