謎の文字列 %EF%BF%BD

404 Not found

レンタルサーバーのログに謎の文字列 %EF%BF%BD というのがあって、以前から気になっていました。エラーがなければログ自体には関心がないので当然のようにスルーなのですが、そもそも %EF%BF%BD なんて url には存在しないのになんだろう。しかも %EF%BF%BD をひとつの単位として繰り返していて結構長いのです。でも意味不明で結局放置状態でした。

%EF%BF%BD の正体

この文字列 %EF%BF%BD ですが、どうやら以下のようなことらしいとわかりました。

%EF%BF%BD <- UTF-8エンコード - REPLACEMENT CHARACTER(U+FFFD) <- エンコード/デコード - 元の文字

REPLACEMENT CHARACTER は UTF-8/UTF-16 でエンコード/デコードして失敗したときに使われる文字だそう。つまり何かの文字列をエンコード/デコードして失敗し、できた失敗文字列をさらに UTF-8 でエンコードすると謎の文字列 %EF%BF%BD ができるということのようです。

対処法

何もないような気がします(笑)
url に ascii 文字以外を使っているならやめるぐらいしか思いつきません。
%EF%BF%BD が U+FFFD であることはわかりましたが、U+FFFD になった時点で元の情報は失われているのでどうしようもなく…


Last Modified: 14 June 2016