双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

解决中文乱码的常见问题

fafuhefan fafuhefan 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
荐于经常看到朋友说哪里出现中文乱码了,菜鸟我以自己在项目经常遇到的整理了一下,有以下几个方面:

1.最基本的在jsp页面上要把pageEncoding设置为中文,如: <%@ page language="java" pageEncoding="GBK"%>

2.对于表单的doPost()提交,也会出现中文出现乱码,可以在servlet里设置如下:request.setCharacterEncoding("GBK"),response.setCharacterEncoding("GBK"),不过此方法在每个servlet都要设置,很麻烦,建议写个过滤器设置。可以参考以下:
    public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {

HttpServletRequest request_1 = (HttpServletRequest) request;
HttpServletResponse response_1 = (HttpServletResponse) response;

// 转换编码,并且加上去缓存
request_1.setCharacterEncoding("GBK");
response_1.setCharacterEncoding("GBK");
chain.doFilter(request, response);

}
3、第三种就是 如果用doGet()提交,后面跟的参数如果也是中文,这个解决方法可以在tomcat或JBoss的配置文件里面配置,以tomcat为例:
     <Connector port="8099" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/>
  在这里面最后加上URIEncoding="GBK".
4、ajax也会产生乱码问题,这个问题可以在tomcat的配置那里解决。

5、文件上传时文件名也会出现乱码。
可以用此方法paramMap.put(fi.getFieldName(), new String(fi.getString().getBytes("ISO-8859-1"),"GBK"));

知识浅陋,若有错误,请大虾指正或其他更多的补充 。
...全文

相关推荐

评论 61
收藏 已收藏
分享
返回顶部
fafuhefan
Web 开发 81,108 成员 341,721 内容