Java 文字化けの状況に対するいくつかの解決策:
1. get を通じてサーバーに渡されたデータがサーブレットで取得されるときに文字化けが表示されます;
public class RegistServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String name = req.getParameter("userName"); byte[] bytes = name.getBytes("ISO8859-1"); String newName = new String(bytes,"UTF-8"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
分析: doGet メソッドで name 変数を定義して、サーバーにカプセル化されたクライアント データ userName を取得し、その名前を「ISO8859-1」の形式でバイト配列 bytes に割り当て、最後にそのバイト配列を使用します。 UTF-8の形式 新しく作成したString変数newNameに値を代入します この時、newNameは正常に表示できるデータです なぜ面倒かというと、1行で直接解決する方法がないからですこのメソッドは、固定された使用法として考えることができます。
2. サーブレットのポストを通じてサーバーに渡されるデータを取得するときに文字化けが発生します;
public class RegistServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //注意:post方式提交数据的乱码解决方式,放在getParameXXX方法之前 req.setCharacterEncoding("UTF-8"); //得到前台input框中name="username"和password="password"的value值 String username = req.getParameter("username"); String password = req.getParameter("password"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
分析: ポスト配信モードでの文字化けの問題の解決は非常に簡単で、req.setCharacterEncoding だけです。 ("UTF -8"); このコード行ですが、この文はデータを取得する前に配置する必要があることに注意してください。
3. サーブレットがサーバー経由でクライアントにデータを応答するときに文字化けが発生する;
public class RegistServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //方式一: resp.setContentType("text/html;charset=utf-8"); //方式二: resp.setHeader("Content-type", "text/html"); resp.setCharacterEncoding("UTF-8"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
分析: 上記 2 つのメソッドは、適用時に出力メソッドの前に記述する必要があることに注意してください。 2 つの方法 1 の方が簡単で一般的に使用されているため、どちらの方法でも効果は同じです。
4. クライアントでHTMLまたはJSPページを表示すると文字化けが発生します。
<head> <meta charset="UTF-8"> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>form表单</title> </head>
Java の知識をさらに深めたい場合は、java 基本チュートリアル 列に注目してください。
以上がJava でのコード化けの問題に対するいくつかの解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。