JavaWeb を実行していると、時々中国語の値が文字化けする問題に遭遇することがあります。「ISO-8859-1」をすべて「UTF-8」に変更した後、それでも役に立たないことがわかります。そこで、(少なくとも現時点では)常に機能する方法を見つけました。それは、「UTF-8」エンコーディングへの変換を強制することです。コードを見てください:
@RequestMapping("/success.html") public String success(String userCode, Model model) { try { // 编码转换,防止中文乱码 userCode = new String(userCode.getBytes("ISO-8859-1"), "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } log.info("userCode:" + userCode); model.addAttribute("userCode", userCode); return "success"; }
もう 1 つの方法は、構成 web.xml ファイルにエンコード フィルターを追加することです。これにより、文字化けせずに中国語の値を送信することもできます。
<!-- 编码过滤器 --> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Java の知識をさらに深めたい場合は、java 基本チュートリアル 列に注目してください。
以上がJavaでの値の転送が文字化けする問題の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。