まず、コード化けが発生し始める場所を見てください。エンコーディングが統一されている限り、コード化けは発生しません。詳細な説明のために、uft-8 (個人的にはこれが最適だと考えています) を例に挙げてみましょう。
1. JSP ページでコードが文字化けする場合は、JSP ヘッダー ページに次のコードを追加します:
にタグを追加します。ヘッドタグ。
2. サーブレットで文字化けが発生する場合は、次の 2 つの方法があります:
1 つは、各サーブレットの doget メソッドと doPost メソッドのヘッダーに
request.setCharacterEncoding("UTF-8");
を追加することです。最も安全な方法は、国際化とも呼ばれる特別なフィルター クラスを作成することです。クラス名は SetCharacterEncodingFilter で、内容は次のとおりです
package com.sharep.filter;//包名 import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class SetCharacterEncodingFilter implements Filter { protected String encoding = null; protected FilterConfig filterConfig = null; protected boolean ignore = true; public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter("encoding"); String value = filterConfig.getInitParameter("ignore"); if (value == null) this.ignore = true; else if (value.equalsIgnoreCase("true")) this.ignore = true; else this.ignore = false; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (ignore || (request.getCharacterEncoding() == null)) { String encoding = selectEncoding(request); if (encoding != null) request.setCharacterEncoding(encoding); } chain.doFilter(request, response); } public void destroy() { this.encoding = null; this.filterConfig = null; } protected String selectEncoding(ServletRequest request) { return (this.encoding); } }
次に、次のコードを web-inf の web.xml に追加します。
<filter> <filter-name>SetCharacterEncoding</filter-name> <filter-class>com.young.filter.SetCharacterEncodingFilter</filter-class>//注意这里是类名,要有完整包名 <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>SetCharacterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>以上です
3. それでも文字化けが発生する場合は、mysql データベースの問題です
1) データベースのエンコーディングは utf-8 であることを確認してください。 mysql のデフォルトは latin1 です
2) mysql のバージョンが 4.x 以降でもデータベースに文字化けが発生する場合、解決策は 2 つあります: 1 つは、コード内でエンコード方式を指定することです。データベースに接続します:
String url = “jdbc:mysql://localhost:3306/test2?autoReconnect=true&useUnicode=true&characterEncoding=gbk&mysqlEncoding=utf8″ ;
それでも機能しない場合は、
show variables like ‘collation_%';を使用します。
このコマンドは、デフォルトの文字セットを確認するために使用されます。utf-8 でない場合は、my.ini (Windows) で対応するエンコーディングを変更します。または my.cnf (linux) を utf8 に変更し、mysql サーバーを再起動します。
その他の jsp と、サーブレット操作 mysql での中国語文字化けの問題の解決策に関する関連記事については、PHP 中国語 Web サイトにご注意ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

WebStorm Mac版
便利なJavaScript開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
