検索
ホームページphp教程PHP开发jspとサーブレットで動作するmysqlの中国語文字化け問題の解決方法

まず、コード化けが発生し始める場所を見てください。エンコーディングが統一されている限り、コード化けは発生しません。詳細な説明のために、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_%&#39;;
を使用します。

このコマンドは、デフォルトの文字セットを確認するために使用されます。utf-8 でない場合は、my.ini (Windows) で対応するエンコーディングを変更します。または my.cnf (linux) を utf8 に変更し、mysql サーバーを再起動します。

その他の jsp と、サーブレット操作 mysql での中国語文字化けの問題の解決策に関する関連記事については、PHP 中国語 Web サイトにご注意ください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

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

SublimeText3 英語版

SublimeText3 英語版

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

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境