- 浏览: 1336202 次
- 性别:
- 来自: 湖南澧縣
文章分类
最新评论
-
虾米小尹:
不行啊!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 1554字节顺序记号 是编码为 U+FEFF 的统一码 字符( ... -
Unicode 编码表
2009-11-12 00:27 2359http://zh.wikibooks.org/w/index ... -
GB国家标准代码
2009-11-12 00:22 6611国家标准代码 国家标准代码 ,简称国标码 ,是 中华人 ... -
GBK编码表
2009-11-12 00:07 1763http://users.ir-lab.org/~taozi/ ... -
ISO/IEC 8859
2009-11-10 23:27 1534ISO/IEC 8859 ISO 组织在 199 ... -
ASCII
2009-11-09 23:59 1532ASCII ASCII (A merican S ... -
JSP页面编译成Servlet类文件过程中所涉及到的编码问题
2009-11-07 18:27 2444当请求一个JSP页面时,一般的都需要经历下面几个阶段: ... -
Java中的字符集编码入门(六)Java中的增补字符
2009-11-07 16:17 3454Java号称对Unicode提供天 ... -
Java中的字符集编码入门(五)Java代码中的字符编码转换Part 1
2009-11-07 15:50 3671如果你是JVM的设计者,让你来决定JVM中所有字符的表示形式, ... -
Java中的字符集编码入门(四)网页文件的编码
2009-11-07 15:15 1979接着上节的思路说,一 ... -
Java中的字符集编码入门(三)GB2312,GBK与中文网页
2009-11-07 15:00 2566GB2312是对中国的开发人员来说很重要的一个词汇,它的来龙去 ... -
Java中的字符集编码入门(二)编码字符集与字符集编码的区别
2009-11-07 14:27 3411需要再一次强调的是,无论历史上的UCS还是现如今的Unicod ... -
Java中的字符集编码入门(一)Unicode与UCS的历史恩怨
2009-11-07 13:59 2295ASCII及相关标准 ... -
JSP页面编码问题研究
2009-11-07 12:23 1379问题 曾经有一个网友问过我这样一个问题: <% ... -
ISO8859-1字符集与其他字符集兼容性测试
2009-11-07 00:41 4292ISO8859-1字符集中所有字 ... -
HTTP码流与Jsp乱码问题的分析(一)
2009-11-01 14:19 3006测试环境 服务器:Tomcat5.5 浏览器:Firf ... -
Jsp页面中的字符编码方式与乱码解决方案
2009-10-29 23:10 5026JSP/Servlet中的编码方式 ...
相关推荐
文档《JSP各种乱码的处理(一).doc》和《JSP各种乱码的处理(二).doc》中可能详细列举了各种JSP乱码问题的实例及解决方法,包括但不限于文件上传、读取流、数据库操作等方面,建议参考学习,以便更全面地理解并解决...
### javaweb servlet(jsp)的乱码问题原理及解决 #### HTTP协议的基本理解与乱码问题背景 HTTP协议作为互联网应用中最为广泛使用的通信协议之一,它定义了客户端和服务端之间的交互规则。HTTP请求主要分为GET和...
同样,JSP文件在浏览器解析时,如果网页内容的编码与浏览器默认编码不符,也会产生乱码。 解决乱码问题通常需要以下几个步骤: 1. **源代码文件编码设置**:确保源代码文件(如.java文件)使用与IDE或编辑器相同的...
运行时,JVM会根据系统环境变量`file.encoding`来解析字节码中的字符,如果该值与源文件编码不符,就会产生乱码。 解决Java中文乱码问题的关键在于理解和控制整个编码流程: 1. **源文件编码**:确保使用支持中文...
- **JSP中文问题的解决**:设置正确的编码格式,避免中文乱码问题。 #### 结束语 通过以上内容可以看出,基于Java的工作流技术可以有效地提高固定电话装机业务的处理效率和服务质量。通过对工作流、MVC模式、JSP...
- **3.1.2 处理汉字信息**:解决中文乱码问题,通常需要设置正确的编码。 - **3.1.3 常用方法举例**:例如使用`getHeader()`获取HTTP头部信息。 - **3.1.4 用户注册**:通过`request`对象收集用户的注册信息。 -...
- **3.1.2 处理汉字信息**:由于编码问题,需要正确设置编码以避免乱码。 - **3.1.3 常用方法举例**:例如使用`getParameter()`方法获取表单字段值。 - **3.1.4 用户注册**:利用request对象处理用户提交的注册...
在Java编程技术中,汉字问题主要涉及到编码的处理和转换,因为Java的默认编码是UNICODE,而我们日常使用的文件和数据库可能采用GB2312或BIG5等编码方式。这种差异可能导致在读写汉字时出现乱码,影响程序的正常运行...
此外,还会学习如何处理JSP中文乱码问题,使用JSP标签和JavaBean。 5. **JavaWEB高级开发技术**:包括Servlet过滤器和监听器的使用,以及JSP标签和行为元素。此外,课程还将讲解WebService、云计算、工作流、搜索...
提供典型应用案例,剖析JSP/Servret技术与Struts 2技术在Web开发中的不同 提供完整的应用案例,使读者可以深入体会SSH开发模式的精髓 所有开发工具和框架均使用目前的最新版本,紧跟技术发展的趋势 提供230个实例和4...
本文将详细探讨基于Java和JSP技术的网上书店系统的设计与实现过程,旨在解决传统书店业务中存在的一系列问题,如工作量大、效率低下、人力成本高等,通过整合资源,实现读者与商家的双赢局面。 ### 技术概览 #### ...
标题《web应用与开发》课程设计题目--2015,表明这是一份针对某年份的课程设计作业,其主要焦点在于与Web相关的应用和开发。从描述中可以看出,文档内容可能围绕Web应用开发的多个关键方面进行展开,但由于描述与...
提供典型应用案例,剖析JSP/Servret技术与Struts 2技术在Web开发中的不同 提供完整的应用案例,使读者可以深入体会SSH开发模式的精髓 所有开发工具和框架均使用目前的最新版本,紧跟技术发展的趋势 提供230个实例...
5. **IO流**:理解流的分类(字节流、字符流)、流向(输入流、输出流),熟悉BufferedReader、BufferedWriter、FileInputStream、FileOutputStream等常用流对象。 **二、Web基础** 1. **HTTP协议**:掌握HTTP的...
4. **SpringMVC**:了解其工作流程,对比与Struts2的区别,处理乱码问题,熟悉各组件的扩展。 5. **MyBatis**:理解MyBatis与JDBC和Hibernate的区别,熟悉动态SQL和映射文件的配置。 **四、脚本** 1. **JavaScript*...
- **中文乱码问题:**在处理中文数据时可能会遇到乱码问题,解决方法通常包括设置正确的字符集编码。 - **图片处理:**对于包含图像的数据,需要处理图像的上传、存储和显示等问题。 - **HQL语言:**Hibernate Query...