ホームページ > ウェブフロントエンド > jsチュートリアル > パラメータを渡す URL 特殊文字 solution_javascript スキル

パラメータを渡す URL 特殊文字 solution_javascript スキル

WBOY
リリース: 2016-05-16 18:37:37
オリジナル
1323 人が閲覧しました

16 進値
1. URL メディアはスペース +
2. URL 内のスペースは数字でエンコードすることも、ディレクトリとサブディレクトリを区切ることもできます/
4. ? 実際の URL とパラメータを区切りますか?
5. % は特殊文字を指定します #
7. &
8. = URL 内の指定されたパラメータの値 =

解決策:
replace() メソッド str.replace("-","!") を直接使用すると、最初に一致した文字のみが置換されます。また、str.replace(/-/g,"!") は、一致するすべての文字を置き換えることができます (g はグローバル フラグです)。
replace()
js の置換文字変数は次のとおりです:

data2=data2.replace(/%/g,"%");

data2=data2.replace(/#/g,"#");

data2=data2.replace(/&/ g,"&");

その他の情報。 。 。参照のみ。 。 。

URL を使用してパラメータを渡す場合、中国語名 (または特殊文字を含む) の一部のパラメータまたは URL アドレスが渡されることが多く、バックグラウンド処理中に変換エラーが発生します。一部の配信ページではGB2312が使用されており、受信ページではUTF8が使用されているため、受信したパラメータが元のパラメータと一致しない可能性があります。サーバー側の urlEncode 関数を使用してエンコードされた URL は、クライアント側の Java の encodeURI 関数を使用してエンコードされた URL とは異なる結果になります。

Java エンコード テキストには、3 つの関数 (escape、encodeURI、encodeURIComponent) が含まれ、これに対応する 3 つのデコード関数 (unescape、decodeURI、decodeURIComponent) が含まれます。

Java の

エンコード メソッド:

escape() メソッド: ISO ラテン文字セットを使用して、指定された文字列をエンコードします。すべてのスペース、句読点、特殊文字、およびその他の非 ASCII 文字は、%xx 形式の文字エンコーディングに変換されます (xx は、文字セット テーブル内の文字エンコーディングの 16 進数と同じです)。たとえば、スペース文字に対応するエンコーディングは です。アンエスケープ方式はその逆です。このメソッドでエンコードされない文字: @ * /

encodeURI() メソッド: UTF-8 エンコード形式を使用して、URI 文字列をエスケープ形式の文字列に変換します。このメソッドでエンコードされない文字: ! @ # $& * ( ) = : / ;

encodeURIComponent () メソッド: UTF-8 エンコード形式を使用して、URI 文字列をエスケープ形式の文字列に変換します。 encodeURI() と比較して、このメソッドは / やその他の文字など、より多くの文字をエンコードします。したがって、文字列に URI の複数の部分が含まれている場合、このメソッドを使用してエンコードすることはできません。そうしないと、/ 文字がエンコードされた後で URL にエラーが表示されます。このメソッドでエンコードされない文字: ! * ( )

したがって、中国語の文字列の場合、文字列エンコード形式を UTF-8 形式に変換したくない場合 (たとえば、元のページとターゲット ページの文字セットが同じ場合)、エスケープを使用する必要があります。ページが GB2312 またはその他のエンコードで、パラメーターを受け入れるページが UTF-8 エンコードされている場合は、encodeURI または encodeURIComponent を使用する必要があります。

また、encodeURI/encodeURIComponentはjava1.5以降に導入され、java1.0ではエスケープが利用可能になりました。
1. 結合された URL が # などの特殊文字で切り捨てられないように、パラメーターを渡すときに encodeURIComponent を使用する必要があります。

例: < language="java">write('">終了');

2. URLジャンプを実行するときにencodeURI全体を使用できます

例: Location.href=encodeURI("

http://cang.baidu.com/do/s?word

=Baidu&ct=21");

3. js でデータを使用する場合はエスケープを使用できます

例: コレクション内の履歴レコード。

4.escapeが0-255以外のUnicode値をエンコードした場合、%u****形式で出力されます。それ以外の場合、escape、encodeURI、encodeURIComponentのエンコード結果は同じになります。

最も一般的に使用されるのは、中国語、韓国語、その他の特殊文字を utf-8 形式の URL エンコーディングに変換する encodeURIComponent です。したがって、バックグラウンドにパラメータを渡すために encodeURIComponent を使用する必要がある場合は、次のものが必要です。 utf-8 をサポートするためのバックグラウンド デコード (フォーム内のエンコード方法は現在のページのエンコード方法と同じです)

エスケープによってエンコードされない文字が 69 文字あります: *、,-、.

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート