JavaScriptでURL文字列をエンコードする方法はいくつかあります:Escape()、encodeuri()、およびencodeuricomponent()。これらのエンコーディングの役割は異なります。
ESACE()メソッド:
指定された文字列は、ISOラテン文字セットを使用してエンコードされます。すべてのスペース文字、句読点、特殊文字、およびその他の非ASCII文字は、%xx-format文字エンコードに変換されます(xxは、文字セットテーブルでエンコードされた16進数に等しくなります)。たとえば、スペース文字の対応するエンコードは%20です。
この方法でエンコードされない文字: @ * / +
encodeuri()メソッド:
URI文字列をUTF-8エンコード形式のエスケープフォーマット文字列に変換します。
この方法でエンコードされない文字:! @#$& *()=: /; ? + '
encodeuricopenent()メソッド:
URI文字列をUTF-8エンコード形式のエスケープフォーマット文字列に変換します。 encodeuri()と比較して、このメソッドは / etcなどのより多くの文字をエンコードします。したがって、文字列にURIのいくつかの部分が含まれている場合、このメソッドはそれをエンコードするために使用できません。
この方法でエンコードされない文字:! *() '
したがって、中国の文字列の場合、文字列エンコード形式をUTF-8形式に変換したくない場合(たとえば、元のページとターゲットページのcharsetが同じ場合)、Escaseを使用するだけです。ページがGB2312またはその他のエンコードであり、パラメーターを受け入れるページがUTF-8エンコーディングである場合、ecodeuriまたはencodeuricomponentを使用する必要があります。
さらに、ecodeuri/encodeuricomponentはJavaScript 1.5の後に導入されましたが、EscapeはJavaScript 1.0バージョンで利用できました。