URLエンコード

URLパラメータの文字に+(プラス)記号が含まれても空白となる
エンコードが必要

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1458834059


URLパラメータで使える文字について

サーブレットの中でURL文字列を生成して画面遷移をする処理があります。
このサーブレットではチェック処理をおこなっていて、エラーがあれば、その内容を
エラーメッセージとしてURLパラメータに渡しています。
エラーメッセージのなかに「XXX + XXXXです。」のようなものがあるのですが
遷移先のページでは「XXX XXXXです。」とプラスが表示されません。
プラスは表示できないのでしょうか?

URL で + は空白扱いです。%2B を使います

Javascriptで
URLエンコードする方法
(記号を含めてエンコードする場合は、「encodeURIComponent」)

URLエンコード(文字列 → エンコード文字)を行うには、encodeURIComponent/encodeURIを使用します

[JavaScript] URLエンコード/デコードを行う

投稿日:2016年10月1日 更新日:2018年4月28日

URLエンコード/デコードを行うサンプルです。

URLエンコードを行う

URLエンコードを行うには、encodeURIComponentまたはencodeURIを使います。

例)encodeURIComponentを使うパターン

【JavaScript】JavaScript

1var result = encodeURIComponent(‘あいう?&ABC’);

(結果)%E3%81%82%E3%81%84%E3%81%86%3F%26ABC

例)encodeURIを使うパターン

【JavaScript】JavaScript

1var result = encodeURI(‘あいう?&ABC’);

(結果)%E3%81%82%E3%81%84%E3%81%86?&ABC

URLデコードを行う

URLデコードを行うには、decodeURIComponentまたはdecodeURIを使います。

例)decodeURIComponentを使うパターン

【JavaScript】JavaScript

1var result = decodeURIComponent(‘%E3%81%82%E3%81%84%E3%81%86%3F%26ABC’);

(結果)あいう?&ABC

例)decodeURIを使うパターン

【JavaScript】JavaScript

1var result = decodeURI(‘%E3%81%82%E3%81%84%E3%81%86%3F%26ABC’);

(結果)あいう%3F%26ABC

解説

  • URLエンコード(文字列 → エンコード文字)を行うには、encodeURIComponent/encodeURIを使用します。
  • URLデコード(エンコード文字 → 文字列)を行うには、decodeURIComponent/decodeURIを使用します。
  • Componentが付くか付かないかの違いは、URI文字で特別な意味を持つ記号等(?&/=@;:+$,)を変換するかしないかの違いです。

https://javascript.programmer-reference.com/js-url-encode-decode/

URLエンコード文字一覧

https://www.ipentec.com/document/web-url-invalid-char

URLで使用可能な文字、使用できない文字

URLで使用できる文字、できない文字、使用できないパターンを紹介します。
URLの検出や正規表現での記載方法はこちらの記事を参照してください。

概要

URLで利用できる文字は、RFC2396 と RFC3986 に定義されていますが、定義が微妙に違います。

RFC2396

使用可能な文字

  • アルファベット A-Z a-z
  • 数字 0-9

使用可能な記号 (RFC2396 の mark)

  • _
  • .
  • !
  • *
  • (
  • )

“*”はファイル名やディレクトリ名に”*”を使用できないため実質的には使用不可

区切り文字として除外されているもの (RFC2396 の reserved)

以下の文字は使用できません

  • <
  • >
  • #
  • %

“#”はURI参照として、”%”はエスケープ用文字として使われます。

除外されている記号 (RFC2396 に定義がないもの)

以下の文字は使用できません。

  • {
  • }
  • |
  • \
  • ^
  • [
  • ]
  • `
  • :
  • ?
  • #
  • /
  • ?
  • :
  • @
  • %
  • !
  • $
  • &
  • (
  • )
  • *
  • +
  • ,
  • ;
  • =
  • アルファベット A-Z a-z
  • 数字 0-9
  • .
  • _










スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク