首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >中的法语字符显示Mojibake

中的法语字符显示Mojibake
EN

Stack Overflow用户
提问于 2013-12-19 14:11:23
回答 2查看 476关注 0票数 0

在我的应用程序中,我用两种语言制作了它。英语和法语。用英语来说,没问题。但是,在阅读法语的Properties文件时,它最终显示的是mojibake。我的属性文件中有这样的:example.french.char=é

但它在应用程序中没有正确显示。我正在Windows中查看我的应用程序。我不想用Unicode字符代替法语字符。我希望从属性文件中读取它们,就像它们通常显示的那样。

我怎么才能让它起作用?请建议一下。我可以不使用Unicodes来查看法语字符吗?

我的属性文件是用UTF-8编码的。请给我建议!

我也试过..。

代码语言:javascript
复制
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中添加了这个

代码语言:javascript
复制
<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>

但它仍然显示了莫吉贝克。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-19 21:56:42

您是否尝试使用servlet filter类将请求/响应编码类型设置为UTF-8。下面是一个示例:

代码语言:javascript
复制
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中注册过滤器

代码语言:javascript
复制
<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>
票数 0
EN

Stack Overflow用户

发布于 2016-02-17 15:48:49

如果您的属性文件位于UTF-8中,您可能会遇到问题,就像负载中的ISO-8859-1 (InputStream)中的问题一样。您必须使用load( reader )加载属性,在构建读取器时指定编码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20683897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档