软件环境:Tomcat5.5.X

问题描述:

1)一般的汉字正常,如:中国,任务,管理。

2)生僻字出现乱码。如:喆,璟。

解决过程:

1、前言。在Tomcat4中,GET和POST使用相同的处理方式;从Tomcat5开始,GET和POST使用不同的处理方法。所以用POST提交正常,但用GET提交就变成了乱码。

2、页面乱码的解决方式。

1)所有的页面编码都用GBK或GB2312。

%>

http-equiv="Content-Type" content="text/html; charset=GBK"

/>

page contentType="text/html; charset=GB2312" %>

http-equiv="Content-Type" content="text/html; charset=GB2312"

/>

但只这个只能解决页面的显示问题。

3、表单提交(GET/POST)乱码的解决方式。

解决方式一:

1)打开

server.xml,找到

URIEncoding="GBK" 配置项。配置示例如下:

maxHttpHeaderSize="8192"

maxThreads="150"

minSpareThreads="25" maxSpareThreads="75"

enableLookups="false"

redirectPort="8443" acceptCount="100"

connectionTimeout="20000"

disableUploadTimeout="true"

URIEncoding="GBK"

/>

表示GET方式采用GBK编码。

2)然后再加上

useBodyEncodingForURI="true"

的配置,表示POST和GET都采用相同的编码处理方法。实际上在Tomcat5中useBodyEncodingForURI的属性默认为false,代表着GET和POST方式采用了不同的处理方法。配置示例如下:

maxHttpHeaderSize="8192"

maxThreads="150"

minSpareThreads="25" maxSpareThreads="75"

enableLookups="false"

redirectPort="8443" acceptCount="100"

connectionTimeout="20000"

disableUploadTimeout="true"

URIEncoding="GBK"

useBodyEncodingForURI="true"

/>

解决方式二:

1)

打开 server.xml,找到

URIEncoding="GBK" 配置项。配置示例如下:

maxHttpHeaderSize="8192"

maxThreads="150"

minSpareThreads="25" maxSpareThreads="75"

enableLookups="false"

redirectPort="8443" acceptCount="100"

connectionTimeout="20000"

disableUploadTimeout="true"

URIEncoding="GBK" />

表示GET方式采用GBK编码。

2)在web.xml中添加过滤器。配置如下:

filter

cn.aofeng.filter.CharsetFilter

encoding

GBK

filter

package cn.aofeng.filter;

import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import

javax.servlet.http.HttpServletRequest;

import

javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

public class CharsetFilter implements Filter

{

// -----------------------------------------------------

Instance Variables

protected String encoding = null;

protected FilterConfig filterConfig = null;

// ---------------------------------------------------------

Public Methods

public void destroy() {

this.encoding = null;

this.filterConfig = null;

}

public void doFilter(ServletRequest request,

ServletResponse response,

FilterChain chain) throws IOException, ServletException {

request.setCharacterEncoding(encoding); // 编码

chain.doFilter(request,

response); //

转向下一个过滤器

}

public void init(FilterConfig filterConfig) throws

ServletException {

this.filterConfig =

filterConfig;

this.encoding =

filterConfig.getInitParameter("encoding");

}

// ------------------------------------------------------

Protected Methods

protected String selectEncoding(ServletRequest

request) {

return (this.encoding);

}

}

注意:

生僻字:璟,喆

等不在GB2312的字符集内,GBK才支持这些生僻字,因此,在配置时需将编码设置成GBK才能解决生僻字的乱码问题。

通过上述方式,可以解决页面的乱码及GET和POST提交时汉字乱码的问题。

生僻字html乱码,Tomcat 5.5.X及以上版本的生僻字乱码解决办法相关推荐

  1. Tomcat服务器响应特别慢(服务器假死)的解决办法

    Tomcat服务器响应特别慢(服务器假死)的解决办法 最近在做项目,突然发现服务器响应太慢了,点几页就在转圈圈,查了博客才发现是数据库连接池的连接没关,中途增加了个方法,需要获取数据库连接,最后忘记关 ...

  2. 关于tomcat环境下上传大文件遇到的问题及解决办法

    转载自:http://blog.csdn.net/tqwwilliam/article/details/7108247 问题描述: 关于tomcat环境下上传大文件遇到的问题及解决办法 解决方案: 1 ...

  3. 导出excel写入公式_乱码、公式出错、效率低,这些excel“事故”的解决办法来了...

    最近与学员打交道很多,发现跨境电商的财务除了要头疼怎么核算利润.怎么合规外,还被各种excel问题困扰,而且我发现,好多财务也没有这么多空去学习更多的excel的知识. 所以今天,唐老师根据过去在四大 ...

  4. Job for tomcat.service failed because the control process exited with error code 解决办法:

    这个问题是在 < Linux下Tomcat8.5安装与环境配置 > 时遇到的: 错误信息如下: Job for tomcat.service failed because the cont ...

  5. Tomcat启动成功能访问主页面但是不能访问应用解决办法

    还是之前做的登录系统,现在要部署到服务器上. 问题:在我本地能访问,在服务器上Tomcat主页面能访问,访问应用报404. 首先将Tomcat拷贝到服务器的某个目录,解压得到文件夹 然后将应用打成wa ...

  6. eclipse+tomcat 启动已有工程时卡在starting100%状态的解决办法

    错误现象 错误原因:加载mybatis的问题,有的错误,不会报错,但是会出现上面的现象 我的错误地方 在mapper.xml文件中我直接使用了类名但是却忘了配置以下内容,对实体类进行扫描,所以不能用别 ...

  7. Requirement already satisfied+红字Read time out(upgrading via the ‘python -m pip install --upgrad)解决办法

    在安装python2.7时需要下载h5py库,出现问题:参考(188条消息) Requirement already satisfied解决办法_普通网友的博客-CSDN博客 进行下载,下载至一半出现 ...

  8. Server Tomcat v7.0 Server at localhost failed to start.解决办法(图文详解)

    问题描述 Server Tomcat v7.0 Server at localhost failed to start. 解决办法 把你工作空间文件夹下的如下路径打开: <workspace-d ...

  9. Tomcat内存溢出(java.lang.OutOfMemoryError: PermGen space)的解决办法

    原文:http://cheen.iteye.com/blog/1687420 Tomcat启动时报如下错误:       java.lang.OutOfMemoryError: PermGen spa ...

最新文章

  1. CUDA Samples: 获取设备属性信息
  2. Codeforces Round #528 (Div. 2, based on Technocup 2019 Elimination Round 4) C. Connect Three 【模拟】...
  3. python调用webservice接口实例_python调用webservice接口的实现
  4. WPF使用Canvas绘制可变矩形
  5. MFC使用GDI+编程设置
  6. ESXi 内存回收机制
  7. 20200710:动态规划复习day03
  8. 剑指Offer——重建二叉树
  9. 任正非《以客户为中心》
  10. mysql复制表结构(包括索引)
  11. FastReport VCL如何在 Lazarus安装FastReport
  12. 学习方法和学习经验总结
  13. 【Transformer架构】Transformers are RNNs (linear transformer)
  14. 主引导记录(MBR)分析
  15. 天气预报今天几点下雨_天气预报今天几点下雨【相关词_ 天气预报明天几点下雨】...
  16. ifrog 1130 喵哈哈村的魔法大师╳灬兲笙疯癫°月 缩点+最小路径覆盖+背包
  17. 利用pytorch 做一个简单的神经网络实现sklearn库中莺尾花的分类
  18. 什么是嵌入式服务器?为什么要使用嵌入式服务器? -- java面试
  19. HDU 5336 XYZ and Drops(模拟十滴水游戏 BFS)
  20. java实现购买_一个简单的实现购买商品功能的Java小程序

热门文章

  1. 四、redi性能测试、协议、事务
  2. 全渠道营销与多渠道营销:定义、比较、示例
  3. 解密!区块链BaaS是什么?
  4. Java 存牌洗牌发牌看牌
  5. HO-PLGA-COOR,酯封端聚(D,L-丙交酯-co-乙交酯)共聚物
  6. [E::hts_idx_push] NO_COOR reads not in a single block at the end 10 -1
  7. 路由基础(Routing)
  8. 笔记本电脑下面的任务栏一直转圈圈
  9. linux qt lgl,Linux下QT、cannot find -lGL、
  10. 项目管理PMBOK中各知识领域过程的关系图