土耳其语字符显示为“?”并错误地插入了数据库。
我可以在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() {
}


我在本地主机中没有土耳其语字符问题。我仅在www.gurkanilleez.com上看到此问题。

最佳答案

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


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


使用utf8代替latin1。

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

关于stackoverflow中的土耳其语字符集问题,有几个主题。阅读它们。

关于java - 土耳其语字符无法显示在网站上。 Tomcat服务器,Mysql数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34841846/

10-14 04:12