ホームページ php教程 php手册 Tomcat 5.0.19 の中国語文字化けコードを完全に解決 (フィルター)

Tomcat 5.0.19 の中国語文字化けコードを完全に解決 (フィルター)

Jun 21, 2016 am 08:59 AM
encoding filter gt nbsp

1. インクルードされたページが文字化けする

現象: インクルードされたページが文字化けしますが、他のページは正常です。

原因: Tomcat はデフォルトで ISO-8859-1 エンコーディングを使用しますが、インクルードする場合、Tomcat は外側の .jsp ファイルのエンコーディングに従ってインクルードされたファイルを正しく解析できない場合があります。同梱ファイルに中国語が文字化けする。

解決策: ここには多くの解決策がありますが、中国環境の場合の基本的な解決策は、Tomcat 5.0.19 のコアのデフォルト エンコーディングを ISO-8859-1 から GBK に変更することです。 。変更された jar ファイルは、

jasper-compiler.jar からダウンロードできます。jasper-runtime.jar は /common/lib にあり、その他は /server/lib にあります。新しい .jar ファイル 元の .jar で十分です。

2. 送信したデータが文字化けする

現象:フォームから送信したデータが文字化けします。

原因: 理由は不明です。 Tomcat がリクエストを受信した後、リクエスト内の情報に基づいて正しいエンコード方式を事前に決定できなかった可能性があります。

解決策: フィルターを追加して文字セットを設定できます。

//================== 初心者向けの注意。このファイルを WEB-INFclassesfilters の下に配置してください。
//最初に保存してください。これを SetCharacterEncodingFilter.java としてコンパイルし、eclipse
package myAddrBook;
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;
import javax.servlet .UnavailableException;

/**
* @author Administrator
*
* TODO この生成された型アノテーションのテンプレートを変更するには、
に移動します。 * ウィンドウ - 設定 - Java - コード スタイル - コード テンプレート
*/
public class SetCharacterEncodingFilter 実装 Filter {
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected booleanignore = true;

public void destroy() {
this.encoding = null;
this.filterConfig = null;
}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChainchain)
throws IOException, ServletException {

// 使用する文字エンコーディングを条件付きで選択して設定します
if (ignore || (request.getCharacterEncoding() = = null)) {
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
}

// 制御を渡す次の filter
chain.doFilter(request,response);

}

public void init(FilterConfig filterConfig) throws ServletException {

this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
文字列値 = filterConfig.getInitParameter("ignore");
if (value == null)
this.ignore = true;
else if (value.equalsIgnoreCase("true"))
this.ignore = true;
else if (value.equalsIgnoreCase("yes"))
this.ignore = true;
else
this.ignore = false;

}

protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}

}

//==================このコードはインターネットから抜粋したものです。作者がわからないため、特定できません。 thesource
// 次に、以下の <filter> で始まるコードを WEB-INF の下にある web.xml に追加します。
//My QQ: 22070699
//設定 web.xml

<!-- 文字エンコーディングの設定-->

<filter>
&lt ;フィルタ名>文字エンコーディングの設定</フィルタ名>
<フィルタクラス>myAddrBook.SetCharacterEncodingFilter</フィルタクラス>
<init-param>
<パラメータ名> ;エンコーディング</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>

< -mapping>
<filter-name>文字エンコーディングの設定</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> 🎜>
<!-- 文字エンコーディングの設定-->



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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

解決策: 組織では PIN を変更する必要があります。 解決策: 組織では PIN を変更する必要があります。 Oct 04, 2023 pm 05:45 PM

解決策: 組織では PIN を変更する必要があります。

Windows 11 でウィンドウの境界線の設定を調整する方法: 色とサイズを変更する Windows 11 でウィンドウの境界線の設定を調整する方法: 色とサイズを変更する Sep 22, 2023 am 11:37 AM

Windows 11 でウィンドウの境界線の設定を調整する方法: 色とサイズを変更する

Windows 11でタイトルバーの色を変更するにはどうすればよいですか? Windows 11でタイトルバーの色を変更するにはどうすればよいですか? Sep 14, 2023 pm 03:33 PM

Windows 11でタイトルバーの色を変更するにはどうすればよいですか?

Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法 Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法 Sep 15, 2023 pm 03:57 PM

Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法

Windows 11/10修復におけるOOBELANGUAGEエラーの問題 Windows 11/10修復におけるOOBELANGUAGEエラーの問題 Jul 16, 2023 pm 03:29 PM

Windows 11/10修復におけるOOBELANGUAGEエラーの問題

Huawei GT3 ProとGT4の違いは何ですか? Huawei GT3 ProとGT4の違いは何ですか? Dec 29, 2023 pm 02:27 PM

Huawei GT3 ProとGT4の違いは何ですか?

Windows 11 でのディスプレイ スケーリング ガイド Windows 11 でのディスプレイ スケーリング ガイド Sep 19, 2023 pm 06:45 PM

Windows 11 でのディスプレイ スケーリング ガイド

Windows 11で明るさを調整する10の方法 Windows 11で明るさを調整する10の方法 Dec 18, 2023 pm 02:21 PM

Windows 11で明るさを調整する10の方法

See all articles