web-dev-qa-db-ja.com

URLの特殊文字を本当に削除する必要がありますか?

FTPアカウントを友人と共有し、そこでアンダーグラウンドミュージックアルバムをアップロードし、そのリンクを使用してダウンロードを音楽フォーラムで共有しています。問題は、アルバム名がフランス語であるため、名前に多くの特殊文字が含まれていることです。

したがって、URLはhttp://www.mydomain.com/downloads/Some Band - En français avec des caractères spéciaux (2013) [7'' EP].Zipのようになります

私にとっては完璧に機能し、このURLを使用してファイルをダウンロードできますが、URLに特殊な文字が含まれていることはどこでも読みました。

特殊文字を削除するかURLをエンコードする必要がある理由はありますか?誰もが特殊文字を使用してURLにアクセスできますか、または一部の古いブラウザーはファイルをダウンロードできませんか?

私は本当にSEOなど何も気にしません。ダウンロードリンクがすべての人に機能するようにしたいだけです。

ファイルはFTP経由でアップロードされるため、PHPを使用して正規表現で特殊文字を削除することはできません。そのため、どうすればよいかわかりません。

6
anarchoi

最新のブラウザは、リクエストする前にURLの特殊文字を自動的にエンコードします。あなたはすでにエンコードされた文字を使用しているので、あなたはそれを知りません。

http://www.url-encode-decode.com/ を使用して、URLのファイル部分をエンコードしました(UTF-8を使用):

http://www.mydomain.com/downloads/Some+Band+-+En+fran%C3%A7ais+avec+des+caract%C3%A8res+sp%C3%A9ciaux+%282013%29+%5B7%27%27+EP%5D.Zip

これは、エンコードなしでリンクしたときにブラウザーが送信するものであるはずです。古いブラウザとの互換性のために、すべてのリンクをURLエンコードする必要があります。

4

はい、さまざまなブラウザやインターネットにアクセス可能なアプリケーションとの均一な互換性のために、次のすべてをURLにエンコードする必要があります。

  • スペース
  • ASCII制御文字
  • 非ASCII文字
  • 予約文字
  • 安全でないキャラクター

これらの詳細については、次を参照してください。 エンコードする必要がある文字とその理由

URLが何であるかを知っていると思われるため、上記のリンク、またはURLエンコードに関する情報も提供する次のリンクにあるようなオンラインURLエンコーダーを使用してみてください: rl Encode/Decode online

次に、可能な限り多くのブラウザーでURLをテストして、機能することを確認してからシェーディングします。いくつかの異なるブラウザー(Chrome、Firefox、Operaなど)をダウンロードして、テストのために同じコンピューターにインストールできます。

どの文字をエンコードする必要があるかに慣れてきたら、アップロードする前にファイル名の文字を置き換えたり削除したりできます。

1
dan

...音楽でダウンロードを共有するforum

これは実際に既存の回答に追加するだけです... URLは、ブラウザー(またはフォーラムソフトウェア)によって暗黙的に、またはユーザーによって明示的にエンコードされる必要があります。

フォーラムでこれらのリンクを共有していることを具体的に述べています。多くのフォーラムでは、フォーラムの投稿にリンクが自動的にエンコードされるため、自分で明示的にエンコードする必要はないかもしれませんが、これはフォーラムに依存します。

スタック交換(マークダウン)はリンクをある程度エンコードしますが、エンコードされていないURLを投稿に入力し、フォーラムがURLを自動検出できるようにすると、エンコードされていないスペースでは失敗します(多くのフォーラムソフトウェアと同様)。ただし、フォーラムにリンクを埋め込むための特定のプロンプトがある場合、Stack Exchangeでツールバーオプションを使用する場合と同様に、このOKに対処できます。

編集者への注意:以下の(壊れた)リンクを「修正」したり、<pre>タグで囲んだりしないでください。
-リンクは壊れているか、そのまま表示されることを意図しています。例として役立っています!

手動で入力されたリンク

(ご覧のとおり、最初のスペースで壊れています)

[手動でエンコードされていないリンクタイプ]( http://www.example.com/downloads/Some Band-Enfrançaisavec descaractèresspéciaux(2013)[7 '' EP] .Zip)

ツールバーのハイパーリンクオプションを使用して入力されたリンク

リンクはforumソフトウェアによって正しくエンコードされます

上記のリンクは次のようにエンコードされます。

<a href="http://www.example.com/downloads/Some%20Band%20-%20En%20fran%C3%A7ais%20avec%20des%20caract%C3%A8res%20sp%C3%A9ciaux%20%282013%29%20%5B7%27%27%20EP%5D.Zip" rel="nofollow">link is correctly encoded by the <em>forum</em> software</a>
1
MrWhite