浏览器接收服务器响应的中文参数:

JSP页面中告诉浏览器使用什么编码:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

HTML中设置:

<meta http-equiv="content-type" content="text/html;charset=utf-8">

Servlet中设置:

response.setContentType("text/html;charset=utf-8");

response.getWriter().print(str);

服务器接收浏览器传递的中文参数:

如果是POST请求:

request.setCharacterEncoding("utf-8");

String userName = request.getParameter();

注:getParameter()获取POST请求参数默认使用ISO-8859-1编码,setCharacterEncoding()方法仅对POST请求有效。

如果是GET请求:

String name = request.getParameter("username");

name = new String(name.getBytes("iso-8859-1"),"utf-8");

在Tomcat容器的server.xml中配置URIEncoding(不推荐):

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8" />

浏览器地址栏编码

http://localhost:8080/servlet/regist?name="张三"

如果在浏览器地址栏中直接给出带参数的URL,不是通过超链接方法访问服务器,那么这个参数是GBK编码的。

没有办法处理这问题,因为在页面使用UTF-8编码,Servlet需要用UTF-8来解码,而此时URL中编码是GBK。

但直接在地址栏中根本就不应该直接输入带有参数的URL,只有超链接中的URL是受页面的编码控制的。

IE6对UTF-8不友好(使用JS处理)

IE6对UTF-8不是很友好!它会把两个字节当成一个中文来处理,当字节数为奇数时,那么就最后一个字节就会丢失。例如我们的GET参数是“大家好”,对于UTF-8编码而言,它就是9个字节,因为中文在UTF-8编码中3个字节,三个汉字对应9个字节。IE6认为2个字节是一个汉字,那么最后一个字节不会发送到服务器端,IE6很不安全。

处理这个问题的办法是把GET请求中的参数使用JavaScript做URL编码,URL编码后的内容就不再是中文了,这样IE6也就不会丢失字节了。

<a href='javascript:_go()'>Encoding</a>

<script type="text/javascript">

function _go() {

location.href = encodeURI("EncodingServlet?name=大家好");

}

</script>

http://localhost/encoding/EncodingServlet?name=%E5%A4%A7%E5%AE%B6%E5%A5%BD

在使用URL编码后,大家好已经变成了%E5%A4%A7%E5%AE%B6%E5%A5%BD。这样就不会再丢失字节了。

tomcat jsp页面乱码解决的更多相关文章

  1. JSP页面乱码解决

    1. tomcat 设置端口处加上 URIEncoding="UTF-8" 2. tomcat 的bin文件夹下的catalina.bat中如下位置加上如下编码:-Dfile.en ...

  2. jsp中文乱码解决办法

    一.JSP页面显示乱码 二.表单提交中文时出现乱码 三.数据库连接 大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到 的中文乱码的问题及解决办法写出来供 ...

  3. jsp 传值jsp 数据库 乱码解决的攻略 全套

    jsp传值给jsp中文乱码 传值给数据库乱码的解决方法 所有的用到编码的所有统一utf-8 1.装mysql的时候有选择编码的界面的那个地方选utf-8编码 2 建数据库的时候选择 字符集 排序规则所 ...

  4. jsp参数乱码解决

    iframe src引入jsp,?跟着的中文参数会乱码 解决方法: var CJJG=encodeURI(encodeURI(value.data.CJJG));//js里面转码一次 //jsp页面里 ...

  5. Idea jsp页面乱码

    jsp页面中添加 <%@ page language="java" contentType="text/html; charset=utf-8" page ...

  6. idea配置tomcat及中文乱码解决

    放在前面:不要使用tomcat10,访问自己的页面会报404错误,目前无解,在这个坑爬了一下午,最终换了tomcat 9才解决.所以我选择了tomcat 9 + idea 2021.2版本 配置步骤: ...

  7. Tomcat启动中文乱码解决方法

    一:解决方法一: 1.查看电脑系统的编码 针对Windows平台下,点击运行--输入cmd,enter键进入命令窗口,输入:chcp可以得到操作系统的代码页信息(代码页:字符集编码的别名),可以从控制 ...

  8. eclipse中jsp页面乱码问题

    若上述位置均改为utf-8之后,页面展示扔为乱码,检查jsp页面是否有编码说明

  9. 解决jsp页面乱码问题

    页面也需要设置转码的:页面:(.jsp) <%@ page language="java" import="java.util.*" pageEncodi ...

随机推荐

  1. JS循环中使用bind函数的参数传递问题

    JS循环中使用bind函数的参数传递问题,问题代码如下: for (var sc in result) { var tempp = '<div class="sidebar_todo_ ...

  2. ASP.NET服务器端控件原理分析

    服务器端控件触发事件分两种: 1.服务器端控件Button被渲染成客户端的 <input type="submit" name="Button1" val ...

  3. 洛谷P3233 世界树

    题意:给定树上k个关键点,每个点属于离他最近,然后编号最小的关键点.求每个关键点管辖多少点. 解:虚树 + DP. 虚树不解释.主要是DP.用二元组存虚树上每个点的归属和距离.这一部分是二次扫描与换根 ...

  4. 【模板】倍增+Floyd

    题目大意:给定一个 N 个顶点的邻接矩阵.起点顶点.终点顶点,求至少经过 K 条边(边可以重复)从起点到终点的最短路长度,若不能到达,输出 -1. 题解:至少经过 K 条边和恰好经过 K 条边的初始条 ...

  5. PrintNumber.java

    /****************************************************************************** * Compilation: javac ...

  6. pyautogui_pdf内容提取到excel内_3

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  7. Problems you may meet

    一.正确安装sklearn却提示No module named 'sklearn.lda' It seems that you have installed a newer version of sk ...

  8. Makefile 中符合的使用

    1. $@: 表示规则中的目标文件集.在模式规则中,如果有多个目标,那么,"$@"就是匹配于 目标中模式定义的集合 2. $^  : 所有的依赖目标的集合.以空格分隔.如果在依赖目 ...

  9. epoll讲解--转自知乎

    Ctrip AIO底层使用epoll https://blog.csdn.net/z69183787/article/details/52943637 首先我们来定义流的概念,一个流可以是文件,soc ...

  10. Python异常处理和进程线程-day09

    写在前面 上课第九天,打卡: 最坏的结果,不过是大器晚成: 一.异常处理 - 1.语法错误导致的异常 - 这种错误,根本过不了python解释器的语法检测,必须在程序运行前就修正: - 2.逻辑上的异 ...