ホームページ  >  記事  >  ウェブフロントエンド  >  js_javascriptスキルでajax送信時の文字化け問題をエスケープ機能で解決

js_javascriptスキルでajax送信時の文字化け問題をエスケープ機能で解決

WBOY
WBOYオリジナル
2016-05-16 16:32:341427ブラウズ

この記事の例は、js での ajax 送信における漢字文字化けの問題をエスケープ関数で解決する方法を説明しています。参考までに皆さんに共有します。具体的な方法は以下の通りです。

1. 問題の説明:

元々、Web ページの特殊効果のエスケープ() は、iso-8859-1 文字セットに従って中国語をエンコードしていたので、リクエスト パラメータは request.getparameter() を通じて直接取得できましたが、後で JavaScript がエスケープ( ) ) が Unicode 文字セット エンコーディングに置き換えられたため、具体的な理由はわかりませんが、JSP チュートリアルとサーブレットでリクエスト パラメーターを直接取得できなくなりました。

2. 解決策:

1. まず、escape() で中国語の文字を 2 回エンコードします。パラメータ名を渡し、値が "Hello" の場合、URL の形式は....name=escape(escape("Hello) です。 ") )、このようにして、request.getparameter() でエンコードされたパラメーターを取得できます。

2. 取得されたパラメータは %u4f60%u597d の形式であるため、通常の urldecoder.decode() を使用してデコードすることはできません。幸いなことに、ツール クラスを直接見つけることができる才能のある人々が世界中にいます。インターネット。javascript
で、escape() および unescape() スタイルのエンコードとデコードを実現できます。

コードをコピーします コードは次のとおりです。

上記の例では、中国語でエスケープ関数のみを使用しており、構文は次のとおりです。

定義と使用法:

scape() 関数は文字列をエンコードして、すべてのコンピュータで読み取れるようにします。
構文:

エスケープ(文字列)パラメータの説明

文字列が必要です。エスケープまたはエンコードされる文字列。

戻り値:

エンコードされた文字列のコピー。これらの文字の一部は 16 進数のエスケープ シーケンスに置き換えられます。

説明:

このメソッドは、ASCII 文字と数字、および次の ASCII 句読点文字をエンコードしません: - _ ~ * ' ( ) 。他のすべての文字はエスケープ シーケンスに置き換えられます。

ヒントとメモ:

ヒント: unescape() を使用して、escape() でエンコードされた文字列をデコードできます。
注: ecmascript v3 ではこのメソッドは非推奨となっており、アプリケーションは代わりに decodeuri() と decodeuricomponent() を使用する必要があります

この記事が皆様の JavaScript プログラミング設計に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。