- 浏览: 1324595 次
- 性别:
- 来自: 湖南澧縣
文章分类
最新评论
-
虾米小尹:
不行啊!2.2-0.25=1.9500000000000002 ...
JavaScript浮点数运算 —— 精度问题 -
heluping000000:
引用String a= "abc",首先在 ...
String,到底创建了多少个对象? -
mack:
谢谢分享matcher.appendReplacement(s ...
string.replaceAll()中的特殊字符($ \)与matcher.appendReplacement -
wzt3309:
完全理解,比网上其他资料都要详细
String,到底创建了多少个对象? -
u014771876:
Java中十六进制转换 Integer.toHexString()
上一节我是用的GB2312编码方式的页面来测试的,这一节我用UTF-8页面来测试一下。
问题一
问题出现时环境:
1、以POST方式提交表单
2、请求的URL后还附加参数且参数值含有中文
3、附加参数值经过了encodeURIComponent()函数编码
4、Tomcat未设置URIEncoding与useBodyEncodingForURI
5、请求页面与结果页面<%@ page %>指令的contentType与pageEncoding编码方式都为UTF-8
6、结果页面中request的编码方式为UTF-8
请求utf-8.jsp与响应页面utf-8rs.jsp代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <body> <form name=form1 action="" method="post"> <input type="text" name="textParam1" size="50 px" value="中a ~!@#$%^&*()_+{}|:\" <>?`-=[]\\;',./"> <br> <input type="file" name="fileParam" size="50 px" value=""> <br> <input type="button" value="submit" onclick="submitForm()"> </form> <script type="text/javascript"> function submitForm(){ var str ="中a ~!@#$%^&*()_+{}|:\" <>?`-=[]\\;',./"; form1.action = "utf-8rs.jsp?qryParam1=" + encodeURIComponent(str) + "&qryParam2="+ encodeURIComponent(form1.textParam1.value) ; //form1.action = "http://localhost:8088/utf-8rs.jsp?qryParam1=" + encodeURIComponent(str) + "&qryParam2="+ encodeURIComponent(form1.textParam1.value) ; form1.submit(); } </script> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>Insert title here</title> </head> <body> <% //这里一定要设置,且与浏览的提交时编码方式一样,否则乱码(默认Tomcat以iso8859-1解码) //且只能post提交方式的参数起使用,对URL后附带参数不起作用 request.setCharacterEncoding("UTF-8"); String textParam1 = request.getParameter("textParam1"); String qryParam1 = request.getParameter("qryParam1"); System.out.println("textParam1=" + textParam1); System.out.println("qryParam1=" + qryParam1); System.out.println("qryParam1=" + (qryParam1==null?null:new String(qryParam1.getBytes("iso8859-1"),"utf-8"))); %> request.getParameter("textParam1")(<font color=red>UTF-8编码->UTF-8解码</font>):<br> <%=request.getParameter("textParam1")%> <br><hr> request.getParameter("qryParam1")(<font color=red>UTF-8编码->ISO8859-1解码</font>):<br> <%=qryParam1%> <br><hr> new String(request.getParameter("qryParam1").getBytes("iso8859-1"),"UTF-8")(<font color=red>UTF-8编码->ISO8859-1解码->ISO8859-1编码->UTF-8解码</font>):<br> <%=new String(request.getParameter("qryParam1").getBytes("iso8859-1"),"UTF-8")%> </body> </html>
提交时地址栏显示:
http://localhost:8080/HttpStream/utf-8rs.jsp?qryParam1=%E4%B8%ADa%20~!%40%23%24%25%5E%26*()_%2B%7B%7D%7C%3A%22%20%3C%3E%3F%60-%3D%5B%5D%5C%3B'%2C.%2F&qryParam2=%E4%B8%ADa%20~!%40%23%24%25%5E%26*()_%2B%7B%7D%7C%3A%5C%22%20%3C%3E%3F%60-%3D%5B%5D%5C%5C%3B'%2C.%2F
码流:
POST /utf-8rs.jsp?qryParam1=%E4%B8%ADa%20~!%40%23%24%25%5E%26*()_%2B%7B%7D%7C%3A%22%20%3C%3E%3F%60-%3D%5B%5D%5C%3B'%2C.%2F&qryParam2=%E4%B8%ADa%20~!%40%23%24%25%5E%26*()_%2B%7B%7D%7C%3A%5C%22%20%3C%3E%3F%60-%3D%5B%5D%5C%5C%3B'%2C.%2F HTTP/1.1
textParam1=%E4%B8%ADa+%7E%21@%23%24%25%5E%26*%28%29_%2B%7B%7D%7C%3A%5C%22+%3C%3E%3F%60-%3D%5B%5D%5C%5C%3B%27%2C.%2F&fileParam= |
运行结果:
问题二
问题出现时环境:
1、以POST方式提交表单
2、请求的URL后还附加参数且参数值含有中文
3、附加参数值没有经过encodeURIComponent()函数编码
4、Tomcat未设置URIEncoding与useBodyEncodingForURI
5、请求页面与结果页面<%@ page %>指令的contentType与pageEncoding编码方式都为UTF-8
6、结果页面中request的编码方式为UTF-8
请求utf-8.jsp与响应页面utf-8rs.jsp代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <body> <form name=form1 action="" method="post"> <input type="text" name="textParam1" size="50 px" value="中a ~!@#$%^&*()_+{}|:\" <>?`-=[]\\;',./"> <br> <input type="file" name="fileParam" size="50 px" value=""> <br> <input type="button" value="submit" onclick="submitForm()"> </form> <script type="text/javascript"> function submitForm(){ var str ="中a ~!@#$%^&*()_+{}|:\" <>?`-=[]\\;',./"; form1.action = "utf-8rs.jsp?qryParam1=" + (str) + "&qryParam2="+ (form1.textParam1.value) ; //form1.action = "http://localhost:8088/utf-8rs.jsp?qryParam1=" + (str) + "&qryParam2="+ (form1.textParam1.value) ; form1.submit(); } </script> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>Insert title here</title> </head> <body> <% //这里一定要设置,且与浏览的提交时编码方式一样,否则乱码(默认Tomcat以iso8859-1解码) //且只能post提交方式的参数起使用,对URL后附带参数不起作用 request.setCharacterEncoding("UTF-8"); String textParam1 = request.getParameter("textParam1"); String qryParam1 = request.getParameter("qryParam1"); System.out.println("textParam1=" + textParam1); System.out.println("qryParam1=" + qryParam1); System.out.println("qryParam1=" + (qryParam1==null?null:new String(qryParam1.getBytes("iso8859-1"),"utf-8"))); %> request.getParameter("textParam1")(<font color=red>UTF-8编码->UTF-8解码</font>):<br> <%=request.getParameter("textParam1")%> <br><hr> request.getParameter("qryParam1")(<font color=red>UTF-8编码->ISO8859-1解码</font>):<br> <%=qryParam1%> <br><hr> new String(request.getParameter("qryParam1").getBytes("iso8859-1"),"UTF-8")(<font color=red>UTF-8编码->ISO8859-1解码->ISO8859-1编码->UTF-8解码</font>):<br> <%=new String(request.getParameter("qryParam1").getBytes("iso8859-1"),"UTF-8")%> </body> </html>
提交时地址栏显示:
http://localhost:8080/HttpStream/utf-8rs.jsp?qryParam1=中a%20~!@#$%^&*()_+{}|:"%20<>?`-=[]\;',./&qryParam2=中a%20~!@#$%^&*()_+{}|:\"%20<>?`-=[]\\;',./
码流:
POST /utf-8rs.jsp?qryParam1=中a%20~!@ HTTP/1.1
textParam1=%E4%B8%ADa+%7E%21@%23%24%25%5E%26*%28%29_%2B%7B%7D%7C%3A%5C%22+%3C%3E%3F%60-%3D%5B%5D%5C%5C%3B%27%2C.%2F&fileParam= |
运行结果:
问题三
问题出现时环境:
1、以get方式提交表单
2、表单输入框中含有中文
3、Tomcat未设置URIEncoding与useBodyEncodingForURI
4、请求页面与结果页面<%@ page %>指令的contentType与pageEncoding编码方式都为UTF-8
5、结果页面中request的编码方式为UTF-8
请求utf-8.jsp与响应页面utf-8rs.jsp代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <body> <form name=form1 action="" method="get"> <input type="text" name="textParam1" size="50 px" value="中a ~!@#$%^&*()_+{}|:\" <>?`-=[]\\;',./"> <br> <input type="file" name="fileParam" size="50 px" value=""> <br> <input type="button" value="submit" onclick="submitForm()"> </form> <script type="text/javascript"> function submitForm(){ var str ="中a ~!@#$%^&*()_+{}|:\" <>?`-=[]\\;',./"; form1.action = "utf-8rs.jsp?qryParam1=" + encodeURIComponent(str) + "&qryParam2="+ encodeURIComponent(form1.textParam1.value) ; //form1.action = "http://localhost:8088/utf-8rs.jsp?qryParam1=" + encodeURIComponent(str) + "&qryParam2="+ encodeURIComponent(form1.textParam1.value) ; form1.submit(); } </script> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>Insert title here</title> </head> <body> <% //这里一定要设置,且与浏览的提交时编码方式一样,否则乱码(默认Tomcat以iso8859-1解码) //且只能post提交方式的参数起使用,对URL后附带参数不起作用 request.setCharacterEncoding("UTF-8"); String textParam1 = request.getParameter("textParam1"); String qryParam1 = request.getParameter("qryParam1"); System.out.println("textParam1=" + textParam1); System.out.println("qryParam1=" + qryParam1); System.out.println("qryParam1=" + (qryParam1==null?null:new String(qryParam1.getBytes("iso8859-1"),"utf-8"))); %> request.getParameter("textParam1")(<font color=red>UTF-8编码->UTF-8解码</font>):<br> <%=request.getParameter("textParam1")%> <br><hr> request.getParameter("qryParam1")(<font color=red>UTF-8编码->ISO8859-1解码</font>):<br> <%=qryParam1%> <br><hr> new String(request.getParameter("qryParam1").getBytes("iso8859-1"),"UTF-8")(<font color=red>UTF-8编码->ISO8859-1解码->ISO8859-1编码->UTF-8解码</font>):<br> <%=new String(request.getParameter("qryParam1").getBytes("iso8859-1"),"UTF-8")%> </body> </html>
提交时地址栏显示:
http://localhost:8080/HttpStream/utf-8rs.jsp?textParam1=%E4%B8%ADa+%7E%21@%23%24%25%5E%26*%28%29_%2B%7B%7D%7C%3A%5C%22+%3C%3E%3F%60-%3D%5B%5D%5C%5C%3B%27%2C.%2F&fileParam=
码流:
GET /utf-8rs.jsp?textParam1=%E4%B8%ADa+%7E%21@%23%24%25%5E%26*%28%29_%2B%7B%7D%7C%3A%5C%22+%3C%3E%3F%60-%3D%5B%5D%5C%5C%3B%27%2C.%2F&fileParam= HTTP/1.1
|
运行结果:
发表评论
-
文件的字节顺序记号
2009-11-12 02:26 1507字节顺序记号 是编码为 U+FEFF 的统一码 字符( ... -
Unicode 编码表
2009-11-12 00:27 2297http://zh.wikibooks.org/w/index ... -
GB国家标准代码
2009-11-12 00:22 6416国家标准代码 国家标准代码 ,简称国标码 ,是 中华人 ... -
GBK编码表
2009-11-12 00:07 1694http://users.ir-lab.org/~taozi/ ... -
ISO/IEC 8859
2009-11-10 23:27 1481ISO/IEC 8859 ISO 组织在 199 ... -
ASCII
2009-11-09 23:59 1470ASCII ASCII (A merican S ... -
JSP页面编译成Servlet类文件过程中所涉及到的编码问题
2009-11-07 18:27 2410当请求一个JSP页面时,一般的都需要经历下面几个阶段: ... -
Java中的字符集编码入门(六)Java中的增补字符
2009-11-07 16:17 3400Java号称对Unicode提供天 ... -
Java中的字符集编码入门(五)Java代码中的字符编码转换Part 1
2009-11-07 15:50 3615如果你是JVM的设计者,让你来决定JVM中所有字符的表示形式, ... -
Java中的字符集编码入门(四)网页文件的编码
2009-11-07 15:15 1933接着上节的思路说,一 ... -
Java中的字符集编码入门(三)GB2312,GBK与中文网页
2009-11-07 15:00 2511GB2312是对中国的开发人员来说很重要的一个词汇,它的来龙去 ... -
Java中的字符集编码入门(二)编码字符集与字符集编码的区别
2009-11-07 14:27 3379需要再一次强调的是,无论历史上的UCS还是现如今的Unicod ... -
Java中的字符集编码入门(一)Unicode与UCS的历史恩怨
2009-11-07 13:59 2240ASCII及相关标准 ... -
JSP页面编码问题研究
2009-11-07 12:23 1341问题 曾经有一个网友问过我这样一个问题: <% ... -
ISO8859-1字符集与其他字符集兼容性测试
2009-11-07 00:41 4223ISO8859-1字符集中所有字 ... -
HTTP码流与Jsp乱码问题的分析(一)
2009-11-01 14:19 2894测试环境 服务器:Tomcat5.5 浏览器:Firf ... -
Jsp页面中的字符编码方式与乱码解决方案
2009-10-29 23:10 4991JSP/Servlet中的编码方式 ...
相关推荐
jsp乱码jsp乱码问题jsp乱码jsp乱码问题jsp乱码jsp乱码问题jsp乱码jsp乱码问题jsp乱码jsp乱码问题jsp乱码jsp乱码问题jsp乱码jsp乱码问题jsp乱码jsp乱码问题jsp乱码jsp乱码问题jsp乱码jsp乱码问题jsp乱码jsp乱码问题...
JSP中文乱码
大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。 一、JSP页面显示乱码 二、表单提交中文时出现乱码 三、数据库连接时...
jspservlet取参数乱码问题分析jspservlet取参数乱码问题分析jspservlet取参数乱码问题分析jspservlet取参数乱码问题分析jspservlet取参数乱码问题分析
JSP解决乱码JSP解决乱码JSP解决乱码JSP解决乱码JSP解决乱码
大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着大家,现把JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。
本方案解决了jsp常见的乱码问题 下载后查看详细内容
JSP乱码问题 页面中遇到的乱码 转换等问题
web项目中中文乱码问题总结,几解决方法。
JSP中文问题解决办法,JSP页面传值,数据库等的中文乱码解决办法
jsp中文乱码的处理 页面显示 表单提交 数据库操作JSP中文乱码处理
JSP乱码 N种解决方案
java 中出现的乱码问题,包括jsp乱码,数据传输乱码等
解决jsp页面乱码,页面信息配置,tomcat配置以及各种信息配置
JSP乱码解决方案大家可以看看,可以有利于大家,在JSP页面乱码问题,扥到更好的解决方案
JSP中汉字乱码现象分析与解决.pdf
jsp eclipse乱码分类及解决办法
对常见中文乱码问题进行了详细介绍和解释,希望能给大家以帮助。
Tomcat环境下JSP中文乱码问题的解决
利用过滤器解决JavaWeb(JSP)的乱码问题