在我的应用程序中,我用两种语言制作了它。英语和法语。用英语来说,没问题。但是,在阅读法语的Properties文件时,它最终显示的是mojibake。我的属性文件中有这样的:example.french.char=é
但它在应用程序中没有正确显示。我正在Windows中查看我的应用程序。我不想用Unicode字符代替法语字符。我希望从属性文件中读取它们,就像它们通常显示的那样。
我怎么才能让它起作用?请建议一下。我可以不使用Unicodes来查看法语字符吗?
我的属性文件是用UTF-8编码的。请给我建议!
我也试过..。
public class CharacterEncodingFilter implements Filter{
private FilterConfig config;
@Override
public void destroy() {
setConfig(null);
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filter) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
filter.doFilter(request, response);
}
@Override
public void init(FilterConfig config) throws ServletException {
setConfig(config);
}
public FilterConfig getConfig() {
return config;
}
public void setConfig(FilterConfig config) {
this.config = config;
}
}并在web.xml中添加了这个
<filter>
<filter-name>charEncoding_Filter</filter-name>
<filter-class>com.edfx.tum.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>charEncoding_Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>但它仍然显示了莫吉贝克。
发布于 2013-12-19 21:56:42
您是否尝试使用servlet filter类将请求/响应编码类型设置为UTF-8。下面是一个示例:
import java.io.IOException;
import java.io.Serializable;
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 SetCharacterEncodingFilter implements Filter, Serializable {
private static final long serialVersionUID = -4518853484989127891L;
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}
@Override
public void destroy() {
}
@Override
public void init(FilterConfig arg0) throws ServletException {
}
}然后在web.xml中注册过滤器
<filter>
<filter-name>UTF8Charset</filter-name>
<filter-class>your.package.name.SetCharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UTF8CharSet</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>发布于 2016-02-17 15:48:49
如果您的属性文件位于UTF-8中,您可能会遇到问题,就像负载中的ISO-8859-1 (InputStream)中的问题一样。您必须使用load( reader )加载属性,在构建读取器时指定编码。
https://stackoverflow.com/questions/20683897
复制相似问题