Java Web アプリケーションで UTF-8 エンコーディングを確認する方法
Java Web アプリケーションで UTF-8 エンコーディングを有効にするには、次の手順に従います。
1. Tomcat のserver.xml を構成します
次の行を追加して、URL (GET リクエスト) パラメーターの UTF-8 エンコードを有効にします:
<Connector port="8080" ... URIEncoding="UTF-8" ... />
2.文字セット フィルターを実装する
Web アプリがすべてのリクエストと応答を UTF-8 エンコードとして処理するように強制するフィルターを定義します。
import javax.servlet.*; public class CharsetFilter implements Filter { private String encoding = "UTF-8"; @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain next) throws ServletException, IOException { request.setCharacterEncoding(encoding); response.setContentType("text/html; charset=UTF-8"); response.setCharacterEncoding("UTF-8"); next.doFilter(request, response); } }
3.フィルターを web.xml に追加します
デプロイメント記述子にフィルターを登録します:
<filter> <filter-name>CharsetFilter</filter-name> <filter-class>fi.foo.filters.CharsetFilter</filter-class> </filter> <filter-mapping> <filter-name>CharsetFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
4. JSP ページ エンコーディングの設定
web.xml でページ エンコーディングを指定します:
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <page-encoding>UTF-8</page-encoding> </jsp-property-group> </jsp-config>
5. HTML メタ タグを使用します
HTML ページで使用されるエンコーディングを示します:
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
6. JDBC 接続の構成
データベース接続の UTF-8 エンコーディングを指定します:
<Resource ... url="jdbc:mysql://localhost:3306/ID_development?useEncoding=true&amp;characterEncoding=UTF-8" ... />
7. UTF-8 照合順序でテーブルを作成する
すべてのデータベース テーブルに UTF-8 照合順序があることを確認します:
CREATE TABLE `Users` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(30) collate utf8_swedish_ci default NULL PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci ROW_FORMAT=DYNAMIC;
8。 MySQL サーバー構成を確認します
サーバーがデフォルトの文字セットとして UTF-8 を使用するように構成されていることを確認します:
[client] default-character-set=utf8 [mysql] default-character-set=utf8
注:
「ж」のようなキリル文字は、UTF-8 エンコードを使用した GET リクエストを通じて処理できますが、「ä」のような文字は、 Latin1 (ISO-8859-1) でエンコードされるため、不一致が発生します。
以上がJava Web アプリケーション全体で UTF-8 エンコーディングを保証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。