(以前からちょっと疑問に思っていたことの解消。現実逃避かも。)
URLにパーセント・エンコーディングというのがある。 何というか説明しづらいが、“漢字のような” 文字はURLには使っていけないので (URL Standard でそうなっているとか)、 16進数を使って表す決まりだとか。 例えば C言語だと 0x0d とするところを %0d とする。 -- 我ながらひどい説明だ。
必要性はわからないでもないけれど、正直言って嫌いである (わがまま)。
理由
例をあげる。
https://support.office.com/ja-jp/article/android-%E3%81%A7-office-%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%A6%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%81%99%E3%82%8B-cafe9d6f-8b0c-4b03-b20a-12438a82a22dほら、長くなって、ブラウザを横スクロールしないと読めない。これは元々は
https://support.office.com/ja-jp/article/android-で-office-をインストールしてセットアップする-cafe9d6f-8b0c-4b03-b20a-12438a82a22dという文字列であった (こちらもかなり長いな、でも何のファイルか良く分かる)。
デコードは原理的には簡単だけれど、自分でプログラムを書く気はしないので、 探してみた。多分 nkf で出来るだろうと思っていたけれど、当たり。
参考: Linux:コマンドラインでURLエンコード・デコードする(nkf編)
URLエンコード |
nkf -WwMQ | tr = % |
(余計なところまで16進数にされる気がする…)
URLデコード |
nkf -w --url-input |
試してみる (横スクロールしないと見えない) |
echo https://support.office.com/ja-jp/article/android-%E3%81%A7-office-%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%A6%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%81%99%E3%82%8B-cafe9d6f-8b0c-4b03-b20a-12438a82a22d|nkf --url-input -w |
ところで、nkfの日本語マニュアルって保守されているのかな? あった。 https://osdn.net/projects/nkf/scm/git/nkf/blobs/master/nkf.1j
あるいは
git clone https://scm.osdn.net/gitroot/nkf/nkf.git |