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