`
wangtong40
  • 浏览: 253003 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

中文乱码处理

阅读更多

4.6    请求参数中文问题
HTTP协议规定浏览器想WEB服务器传递参数信息中不能出现特殊字符,而必须将其进行URL编码后再传送。将URL解码得到的字节数组按照某种字符集编码转换为Unicode字符串。同一个字符在不同字符集中对应的数值不同,比如GB2312编码占2个字节,而UTF-8占3个字节,所以在未告知浏览器编码格式的情况下会产生乱码问题。
4.6.1    中文字符URL编码
Java字符串进行URL编码,对它的某种字符集编码书籍进行URL编码,而Java的字符串以Unicode字符集编码存在,所以在Java字符串编码时,必须制定对这个字符串进行URL编码。JDK提供两个方法URLEncoder、URLDecoder来完成对URL的编码和解码。

public static String encode(string,encode)
public static String decode(string,encode)
 

 

String utf8Url = URLEncoder.encode("中国", "UTF-8");
String gb2312Url = URLEncoder.encode("中国", "GB2312");
System.out.println("UTF-8 Code:" + utf8Url);
System.out.println("GB2312 Code:" + gb2312Url);
System.out.println("UTF-8 DeCode:"
                + URLDecoder.decode(gb2312Url, "GB2312"));
System.out.println("ISO8859-1 DeCode:"
                + URLDecoder.decode(gb2312Url, "ISO8859-1"));
 


输出结果为:
UTF-8 Code:%E4%B8%AD%E5%9B%BD
GB2312 Code:%D6%D0%B9%FA
UTF-8 DeCode:中国
ISO8859-1 DeCode:???¨2

4.6.2    浏览器URL编码
1、    可以使用JSP的meta对JSP页面进行编码约束。

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


2、    可以使用getCharacterEncoding/setCharacterEncoding方法
可以使用ServletRequest对象的getCharacterEncoding/setCharacterEncoding方法可以设置实体内容的编码集。
4.6.3    getParameter()中文问题
1、    对于HTTP请求中那个的URL地址后面的参数,getParameter()方法进行URL解码的字符集子在Servlet中没有规定,有Servlet引擎厂商自行决定。Tomcat中使用ISO-8859-1编码。
2、    对于POST方式下的application/x-www-form-urlencoded编码格式的实体内容,可以使用ServletRequest的getCharacterEncoding()方法返回的字符集编码对其进行URL解码。ServletRequest定义的setCharacterEncoding()方法设置请求消息中的实体内容的字符集编码名称。request.setCharacterEncoding("GB2312");

4.6.4    Dispatcher中文问题

String china = "中国";
RequestDispatcher rd = request.getRequestDispatcher("/servlet/ChineseParamServlet?param="
+ URLEncoder.encode(china, "GB2312"));
rd.forward(request, response);

response.setContentType("text/html;charset=GB2312");
PrintWriter out = response.getWriter();
request.setCharacterEncoding("GB2312");
String value = request.getParameter("param");
out.println("param =" + value + "<br>");
 


注:当使用URL后面添加参数的形式进行传参时可以考虑使用URLEncoder.encode()方法进行编码的转换。

分享到:
评论

相关推荐

    Lua文件反编译汉字乱码处理

    然而,当处理含有汉字的Lua文件时,反编译过程中可能会出现汉字乱码的问题,这主要与字符编码不匹配有关。本文将详细介绍如何在C#环境下,特别是使用Visual Studio 2013时,解决Lua文件反编译后的汉字乱码问题。 ...

    中文乱码处理问题总结

    ### 中文乱码处理问题总结 #### 一、引言 在进行中文字符处理时,经常会出现乱码问题。这主要是因为不同的系统、程序或组件可能采用不同的编码方式,而这些编码方式之间的转换不当就会导致乱码现象。本文将重点...

    servlet与jsp中文乱码处理

    2. **Servlet中的中文乱码处理** - **请求乱码**:当用户通过表单提交包含中文的数据时,需要在`doGet`或`doPost`方法中设置请求编码。 ```java request.setCharacterEncoding("UTF-8"); ``` - **响应乱码**:...

    c#汉字乱码处理

    在C#编程中,处理汉字乱码问题是一个常见的需求,尤其是在读取或写入文本文件时。当在C#控制台应用中遇到汉字输出乱码的情况,这通常是因为编码不匹配所导致的。编码是字符集与二进制数据之间的转换规则,不同的系统...

    get、post请求中文乱码处理方式一

    当我们在处理涉及中文字符的请求时,可能会遇到乱码...提供的压缩包文件“get、post请求中文乱码处理方式一”可能包含了更具体的代码示例和详细说明文档,建议下载后详细阅读,以便更深入地理解和应用这些处理方法。

    java 中文乱码 处理

    ### Java中文乱码处理 在Java开发过程中,中文乱码问题常常令人头疼,尤其是在Web应用中,客户端提交的数据经常会出现编码不一致导致的乱码问题。本文将介绍几种解决Java中中文乱码的方法,希望能对您有所帮助。 #...

    JSP中文乱码处理JSP中文乱码处理

    【JSP中文乱码处理详解】 在Web开发中,JSP中文乱码是一个常见的问题,主要涉及页面显示、表单提交以及数据库操作等环节。理解并掌握这些环节的编码处理至关重要,以确保数据的准确性和用户体验。 1. **JSP文件的...

    url地址传参中文乱码处理

    "URL地址传参中文乱码处理" URL地址传参中文乱码处理是指在Web应用程序中,将中文参数传递给服务器时,可能出现乱码的情况。这种情况可能是由于编码问题或Tomcat服务器的配置问题引起的。 在处理URL地址传参中文...

    提交数据到服务器中文乱码处理

    当涉及到将中文数据提交到服务器时,由于编码格式不匹配或者处理不当,可能会导致接收方接收到的数据显示为乱码。要解决这个问题,我们需要理解字符编码的基本原理,并采取相应的策略来确保数据在传输过程中的完整性...

    java中文乱码处理函数

    ### Java中文乱码处理函数详解 #### 一、引言 在进行Web开发时,我们经常会遇到字符编码问题,特别是中文字符的乱码问题。乱码不仅会影响用户体验,还可能导致数据解析错误。本文将详细介绍一个Java函数,用于解决...

    java中文乱码处理.pdf

    java中文乱码处理 Java中的中文乱码问题是非常常见的,特别是在JSP页面和表单提交中。如果不正确地处理中文乱码问题,可能会导致页面显示乱码、数据乱码等问题。 JSP页面中文乱码处理 在JSP页面中,显示中文乱码...

    eclipseAPI生成中文乱码处理

    ### Eclipse API生成中文乱码处理 在开发过程中,我们经常遇到中文乱码的问题,尤其是在使用Eclipse这样的集成开发环境(IDE)时。本篇文章将详细探讨如何解决Eclipse API生成中文乱码的情况,并提供一系列解决方案...

    Struts2下载文件中文乱码处理

    ### Struts2下载文件中文乱码处理 在Web开发中,使用Struts2框架进行文件下载操作时,经常遇到的一个问题是文件名中的中文字符显示为乱码。这主要是因为浏览器和服务器之间的编码不一致所导致的。为了确保用户能够...

    JSP对URL链接中的中文乱码处理方法总结.docx

    JSP 对 URL 链接中的中文乱码处理方法总结 JSP 对 URL 链接中的中文乱码处理方法总结是指在 JSP 应用程序中,如何正确地处理 URL 链接中的中文字符编码问题。这个问题的出现是由于不同浏览器和服务器的默认编码方式...

    Spring+Struts+Ibatis做的增删改查含有中文乱码处理

    以上就是关于“Spring+Struts+Ibatis”框架整合以及中文乱码处理的基本知识点。通过这样的整合,我们可以构建出一个功能完备且易维护的Web应用,同时解决了中文乱码问题,提升了用户体验。对于初学者,这个项目提供...

    php中常见中文乱码处理方法总结

    ### PHP中常见中文乱码处理方法总结 #### 一、PHP网页的编码 在PHP开发过程中,中文乱码是一个常见的问题。这个问题可能出现在不同的场景中,包括网页本身、与MySQL数据库交互的过程,甚至与操作系统之间的编码不...

    struts 2.1.6 中文乱码处理

    ### Struts 2.1.6 中文乱码处理 #### 概述 在使用Struts 2框架进行Web开发时,中文乱码问题是非常常见的一个难题。这不仅影响用户体验,还可能导致数据处理错误。本篇文章将详细介绍如何在Struts 2.1.6版本中有效...

    Tomcat中文乱码处理方法.docx

    "Tomcat中文乱码处理方法" Tomcat中文乱码处理方法是指在使用Tomcat服务器时,遇到中文乱码问题的解决方法。中文乱码是指在网页中显示的中文字符被错误地显示为乱码,影响用户体验和网站的可读性。 第一种解决方法...

    java URL中文参数乱码处理

    js 中乱码处理法方式 encodeURIComponent(encodeURIComponent(customerAddress)) decodeURIComponent(customerName) js到java encodeURI(url) String qijuType= new String(request.getParameter( (...

Global site tag (gtag.js) - Google Analytics