UTF-8のパーセント変換です。エンコード入力100000文字、デコード入力・結果900000文字まで(UTF-16単位)。形式を切り替えても入力を保持します。
構成要素用はクエリの値などを個別に変換します。英数字と - _ . ! ~ * ' ( ) は残ります。URI用はさらに ; / ? : @ & = + $ , # を残します。URLの妥当性・安全性を検証する機能ではありません。
デコードはdecodeURIComponent相当の1回の変換です。前後の空白や + はそのままです。フォーム形式の + → 空白変換、文字コード判定、二重エンコードの自動解除は行いません。
入力 0文字(UTF-16単位)
結果を移す操作は、エンコード時には構成要素用の結果を使い、変換方向も切り替えます。


