ホームページ > Java > &#&チュートリアル > Java Web アプリケーション全体で UTF-8 エンコーディングを保証するにはどうすればよいですか?

Java Web アプリケーション全体で UTF-8 エンコーディングを保証するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-21 15:51:10
オリジナル
907 人が閲覧しました

How to Guarantee UTF-8 Encoding Throughout a Java Web Application?

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;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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート