スペースを含む URL があり、#
その中にエスケープしURI::Escape
て次のように取得します。
https://copy.com/1rsdM7TvVcLfGebc/name%20with%20space%20and%20%23%20in%20it.jpg ?
注: 上記をコピーした元のページでは、リンクをクリックしても機能しません。そのページの HTML がここに表示されます。
<a href=3D"https://copy.com/1rsdM7TvVcLfGebc/name%20with%20space%20and%20%23=
%20in%20it.jpg?source=3Dbsf" style=3D"color: white; font-weight: =
bold;">name with space and # in it.jpg</a>
ご覧のとおり、 %23#
として正しくエンコードされています。問題は、リンクをクリックすると、ブラウザーがそれを%23として保持せずにエンコードして、リンク先に移動できないことです。これは、リンクがブラウザでどのように見えるかです。スペースが%20としてもレンダリングされていないことがわかります。他のブラウザでは動作が異なり、どれも機能しません。#
#
https://www.copy.com/s/1rsdM7TvVcLfGebc/name%20with%20space%20and%20# in it.jpg
#
ブラウザで手動で%23に置き換えてEnter キーを押すと、正しくページに移動します。
何が起きてる?