土耳其字符无法在网站上显示。 Tomcat服务器,Mysql数据库

时间:2016-01-17 18:14:12

标签: java mysql tomcat encoding tomcat7

土耳其字符显示为'?'并错误地插入数据库。 我可以在phpmyadmin中更改文本并再次使其变为土耳其语。通过这种方式,一切都很完美。

我的编码过滤器:

private String encoding;

public void init(FilterConfig config) throws ServletException {
    encoding = config.getInitParameter("requestEncoding");

    if (encoding == null)
        encoding = "UTF-8";
}

public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain next) throws IOException, ServletException {
    // Respect the client-specified character encoding
    // (see HTTP specification section 3.4.1)
    if (null == request.getCharacterEncoding())
        request.setCharacterEncoding(encoding);

    /**
     * Set the default response content type and encoding
     */
    response.setContentType("text/html; charset=UTF-8");
    response.setCharacterEncoding("UTF-8");

    next.doFilter(request, response);
}

public void destroy() {
}

我在localhost中没有土耳其字符问题。我只在www.gurkanilleez.com上看到问题。

2 个答案:

答案 0 :(得分:0)

每个非英语字符的问号?可能发生了什么:

  • 你有utf8编码的数据(好)
  • SET NAMES latin1生效(默认,但错误)
  • 该列已声明CHARACTER SET latin1(默认,但错误)

使用utf8而不是latin1。

对于JDBC,请在getConnection()调用中包含?useUnicode=yes&characterEncoding=UTF-8

在stackoverflow中有几个关于土耳其字符集问题的线程;读他们。

答案 1 :(得分:0)

由于我的声誉,我无法发表评论。我访问了你的网站,我看到了应该是土耳其人的角色。那么,没有问题或者?