JavaScript による URL のエンコードと変換の方法: 1. encodeURI() 関数を使用して文字列を URI としてエンコードします; 2. encodeURIComponent() 関数を使用して文字列を URI コンポーネントとしてエンコードします。
このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
プロジェクトでURLのパラメータや配列オブジェクトの解析に失敗するという問題が発生し、トランスコードすることで解決しましたが、実際の原理は不明でしたので、JSのトランスコードとデコードについて勉強しました。
JavaScript 言語にはエンコードに使用される関数が 3 つあります。
escape と unescape:
escape: URL エンコードに直接使用することはできません。その実際の機能は、指定された文字列をエンコードできるように、文字の Unicode エンコード値を返すことです。 ASCII 文字、数字、句読点「@ * _ - . /」を除く、すべてのスペース、句読点、特殊文字、およびその他の非 ASCII 文字は、%xx (16 進数) の形式の文字に変換されます。数字)コーディング。つまり、
escape は文字をエンコードしません。: *、-、.、/、@、_、0-9、a-z、A-Z の 69 文字があります。
unescape();
および decodeURI: **encodeURI()** は、JavaScript で URL をエンコードするために実際に使用される関数です。 URL 全体がエンコードされますが、一般的な記号に加えて、URL 内の特別な意味を持つ記号「; / ? : @ & = $ , #」はエンコードされません。エンコード後、シンボルの UTF-8 形式を出力し、各バイトの前に % を追加します。 encodeURI() は一重引用符をエンコードしないことに注意してください。
に対応するデコード関数は
です。
と decodeURIComponent
encodeURIComponentは、URL のコンポーネントを個別にエンコードするために使用されます。 URL 全体をエンコードするのではなく、.したがって、encodeURI() でエンコードされない記号「; / ? : @ & = $ , #」は、すべて encodeURIComponent() でエンコードされます。 encodeURIComponent() は、「/」やその他の文字など、より多くの文字をエンコードするためです。文字列に URI の複数の部分が含まれている場合、これをエンコードに使用することはできません。そうしないと、「/」文字がエンコードされた後、URL が正しく表示されません。したがって、パラメーターを渡すときに、特殊文字を含むパラメーターによって中断が発生する可能性があります。
**escape()** 関数は、文字列をエンコードするために js によって使用されます。一般的には使用されません
**encodeURI()** は URL 全体をジャンプするために使用されます
**encodeURIComponent()** はパラメータを渡すために使用されます 特殊文字を含むパラメータは中断を引き起こす可能性があります。
[推奨学習:
JavaScript 上級チュートリアル以上がJavaScriptでURLをエンコードして変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。