ホームページ  >  記事  >  ウェブフロントエンド  >  URL値の中国語文字化け問題を解決するJS代替方法 transfer_javascriptスキル

URL値の中国語文字化け問題を解決するJS代替方法 transfer_javascriptスキル

WBOY
WBOYオリジナル
2016-05-16 17:37:471045ブラウズ

Web アプリケーションを開発する場合、多くの状況でフロントエンドとバックエンドの間でデータのやり取りが必要になることがあります。場合によっては、フロントエンドの中国語データを URL 経由でバックエンドに渡す必要があります。 Java でのネットワーク送信に使用されるセットは ISO-8859-1 であるため、バックグラウンドで request.getParameter("message") を使用してフロントから送信された中国語を取得すると、引き続き ISO-8859-1 文字セットが取得されます。中国語は文字化けします。 多くの人にとって、フォアグラウンドで中国語をデコードしてからバックグラウンドでデコードして変換するという解決方法はありませんか。

しばらく考えてみました。なぜフォームを使用して中国語を送信できるのに、URL メソッドを使用できないのでしょうか。問題を解決するには、URL を使用して値を渡す必要がありますか?ここで私は動的フォームを考えました。問題を解決するためにそれを使用してはどうでしょうか。例は次のとおりです:

次のようなアプリケーション シナリオがあるとします。KPI リスト ページでは、各 KPI に早期警告データを生成する機能があり、リスト内の各 KPI のデータ、KPI の ID と名前が生成されます。バックグラウンドに渡す必要があります。

フロントエンドに対応する js メソッド:

URL を使用して値を渡します:

コードをコピー コードは次のとおりです:

function createData (indexId,indexName){
window.location.href="catalogAction.do?action=CreateIndexData&catalogId="indexId "&catalogName="indexName"&random =" Math.random();

}


この方法を使用すると、ほとんどの KPI 名が中国語であるため、バックグラウンドで受信した値が文字化けするはずです。

これは、フォームを動的に生成することで解決できます:

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

function createData(indexId,indexName){
var urlStr = "catalogAction.do?action=CreateIndexData&PcatalogId=&catalogId="indexId "&random =" Math .random();
var f= document.createElement('form');
f.action = urlStr;
f.method = 'post';
document.body 。 appendChild(f );
var temp=document.createElement('input');
temp.type= 'hidden';
temp.value=indexName name='catalogName';
f .appendChild(temp);
f.submit(); バックグラウンドに文字化けが送信される問題を簡単に解決します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。