ファイルの保存エンコード形式を設定します。通常、プロジェクトを新規作成する場合、GBK エンコード形式が設定されます。このとき、ファイルのページエンコード形式は GBK、保存形式は ANSI で、その後、プロジェクトとファイルのエンコード形式を UTF-8 エンコード形式に変更した後も、中国語の文字化けが発生しました。これは、既存のファイルの保存エンコード形式が ANSI のままであるため、以前の.java ファイルを保存する必要があります。中国語のコメント文字化けの問題が発生しないように、フォーマットを utf-8 に変更してください。
window-preferences-General-Content Types Text で対応するファイル タイプを選択し、ページのエンコードを UTF-8 に変更し、「更新」をクリックします。
注:
新しいワークスペースの場合、Myeclipse のエンコード形式を設定することは、プロジェクト、ファイルを設定し、エンコード形式 (jsp などを除くファイル) を保存することと同じです。 )
既存のワークスペースで、元のエンコード形式が GBK の場合、ワークスペースのエンコードを変更することは、プロジェクトとファイルのエンコード形式を設定することと同じですが、以前の既存の .java ファイルのエンコーディングは変更できません。上記(4)に従って変更する必要があります。ただし、新しいファイルの保存エンコーディングは有効です。
文字化けを確認するいくつかの場所
1. 保存されたエンコーディング
2. jsp で宣言されたエンコーディング (UTF-8 と utf8 は同じです)
注:
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
3 . 処理された文字エンコーディングフィルター内のエンコーディングは入力データと出力データのエンコーディングに限定されます。上記コードで設定したエンコード形式がページの表示形式となります。
javaweb プロジェクト コードには、合計次の形式があります:
1. コード保存形式 2. ブラウザ解析形式 3. データ入力形式 (つまり、ブラウザの解析によって決定されます) format) 4. データ処理時のフォーマット。
上記 6 つの形式は原則として同一である必要があり、文字化けすることはありませんが、特殊な場合があり、その中には矛盾するものもあります。正しく表示されない場合は、入力コンテンツを表示および処理するときに、リクエストとレスポンスの形式が他の形式と一致しない可能性があります。 ps: 一般的に使用されるエンコードは、ISO-8859-1、gbk、utf-8
# です。 ##したがって、絶対確実な方法は次のとおりです。
package com.helloweenvsfei.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 CharacterEncodingFilter implements Filter{ private String characterEncoding; private boolean enabled; public void destroy() { // TODO Auto-generated method stub characterEncoding = null; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub if(enabled || characterEncoding != null){ request.setCharacterEncoding(characterEncoding); response.setCharacterEncoding(characterEncoding); } chain.doFilter(request, response); } public void init(FilterConfig config) throws ServletException { // TODO Auto-generated method stub characterEncoding = config.getInitParameter("characterEncoding"); enabled = "true".equalsIgnoreCase(config.getInitParameter("enabled").trim()); } }
<filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>com.helloweenvsfei.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>characterEncoding</param-name> <param-value>utf8</param-value> </init-param> <init-param> <param-name>enabled</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
java に注意してください。基本チュートリアル列。
以上がJava Web の文字化けの解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。