URLに使用できる文字、できない文字

公開日:
更新日:
カテゴリー: ドメイン

プログラムでアップロードされたファイルの文字列(ファイル名)を決めるとき、URLに使用できる文字はどんなものか?が気になったので調べてみました。

ここではURLに使用できる文字、使用できない文字をまとめています。

URLに使用できる文字

半角英数字全てと一部の半角記号

a-z  A-Z  0-9  -  _  .  !  '  (  )  *

※「*」はファイル名やディレクトリ名に使用できないので実質使用できない

URLに使用できない文字

一部の半角記号

\  '  |  `  ^  "  <  >  )  (  }  {  ]  [

予約語として定義されている文字

URLに使用できるがファイル名やディレクトリ名に使用できない(何かしら意味をもつ文字)

;  /  ?  :  @  &  =  +  $  ,  %  #

※「?」は動的に生成されたURLやプログラムに値を渡すときに使用される。

※「#」はアンカー。ページジャンプなどに使用される。

※「%」はエスケープ文字。

エスケープ文字とURLエンコードについて

「%」はエスケープ文字で、日本語を含むURLをエンコードした際「%○○」のようになりますが、そこで使用されます。

なお、日本語はマルチバイト(2バイト)なので、日本語1文字をエンコードすると、「%」を先頭につけて「○○(○○の部分は16進数)」のように2文字となります(ということは、「%」の後ろ2文字を16進数にすると「%」はURLに使える文字となる?)。

なお、エンコードは文字コードを変換するので、同じ日本語1文字でも文字コードの種類によって「○○」の部分は変わります。

URLに使用できる文字の定義

URLで使用できる文字やできない文字はRFC2396(和訳)やRFC3986で正確に定義されているようです。

 

頑張って書いたのでちょろっと読んでほしい!

 

コメント

1:K:2016/08/12 16:25:34

URLに使用できる文字とURLに使用できない文字に
 (  ) 
が含まれておりますがどちらでしょうか?

コメントフォーム
お名前
コメント