jspのバックグラウンドで中国語をフロントに伝える文字化けしの問題を解決する


仮にjspページでバックグラウンドに渡されたパラメータを使うと、中国語が文字化けしてしまう可能性があると思って、最初はこう書きました.1.バックグラウンドjavaコードの値伝達プロセス:
this.setName(URLEncoder.encode(" ","UTF-8"));

2.フロントのjspページの値を取る過程、テストします:
.getParameter("name");
username = URLDecoder.decode(username,"UTF-8");
System.out.println(username);
%>

予想される目標に沿って、ページに表示される内容が「テスト」であるため、あいにく文字化けして表示されています.最後に調べてみると、Httpリクエスト伝送時にurlをISO-8859-1で符号化し、サーバがバイトストリームを受け取った後にデフォルトでISO-8859-1で符号化して文字ストリームに復号するので、この時明らかになった.まず、伝達されたパラメータをISO-8859-1で符号化し、UTF-8で復号すれば、問題を解決できる.
String username = request.getParameter("name");
username = new String(username.getBytes("ISO-8859-1"), "UTF-8"); 
System.out.println(username);
%>

3.原文参照リンクここをクリック