1

アプリケーションでUnicode文字(中国語)を表示しようとしています.jsp部分は正常に動作しており、文字セットをUTF-8に設定しても問題はありませんが、JavaコードではUnicode文字が表示されません。 utf-8へのリクエスト

request.setCharacterEncoding("UTF-8");

最後に、同じものを取得してテーブルに挿入します。データベースはすでにUnicodeサポート用に構成されています。

私が間違っているのは何ですか。解決策について親切にアドバイスするか、それを行うためのより良い方法があります。

ありがとう

4

1 に答える 1

0

文字エンコード用にアプリケーションにフィルターを実装してみてください。

public class CharacterEncodingFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig)
            throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
            throws IOException, ServletException {
        servletRequest.setCharacterEncoding("UTF-8");
        servletResponse.setContentType("text/html; charset=UTF-8");
        filterChain.doFilter(servletRequest, servletResponse);
    }

    @Override
    public void destroy() {

    }
}

また、tomcatを使用している場合は、コネクタ要素にURIEncoding属性(値はUTF-8)があることを確認してください。

<Connector port="8080" 
           protocol="HTTP/1.1"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           redirectPort="8443"/>

また、すべてのJSPページでこれを指定していることを確認してください。

<%@page contentType="text/html" pageEncoding="UTF-8"%>

お役に立てれば。

于 2012-06-04T11:45:25.623 に答える