アクションは、プロジェクト全体で UTF-8 エンコーディング形式を使用している限り、中国語のパラメーターを取得します。ただし、JSP で JS が使用され、中国語のパラメーターが JS からアクションに渡される場合は、コード化けの問題は発生しません。
プロジェクトに取り組んでいるときに、プロジェクト全体で UTF-8 エンコード形式を使用している限り、Action が中国語のパラメーターを取得することがわかりました。ただし、JS は JSP で使用されており、中国語のパラメータは JS から Action に渡されます。中国語では混乱が生じます。百度に何度か問い合わせてみたところ、いろいろな意見がありました。
実践の結果、以下の方法で中国語の文字化けの問題を解決できることが分かりました。
JSPのJSの場合: 中国語パラメータはencodeURI(encodeURI(中国語パラメータ))を使用しており、これを2回トランスコードします。例:
function show(next,id,realName){ document.forms['f2'].action="usersearchNextPage?next="+next+"&id="+id+"&realName="+encodeURI(encodeURI(realName)); document.forms['f2'].submit(); }
ここで、realName は中国語のパラメータです。したがって、送信された URL では、realName が 2 回トランスコードされます。 encodeURI(encodeURI(realName))
アクション: 中国語パラメータを受信したときにデコードします。使用: java.net.URLDecoder.decode(realName, "UTF-8");
例:
以上がJSがActionに中国語パラメータを渡すと文字化けする問題とその解決方法を共有しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。String realName = ServletActionContext.getRequest().getParameter("realName");
try {
realName = java.net.URLDecoder.decode(realName,"UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}