`
bh三少
  • 浏览: 102140 次
  • 性别: Icon_minigender_1
  • 来自: 北海
社区版块
存档分类
最新评论

解决GET提交中文乱码问题

阅读更多

今天同事在做一个手机网站的后台,用GET方式提交参数时,碰到了中文乱码的问题,Tomcat服务器和页面都设置了编码方式是UTF-8,也用了过滤器,还是出现乱码。
无奈只有用java API的两个类来进行编码与解码,URLEncoder:HTML格式编码的工具类,它能将String转换成
application/x-www-form-urlencoded MIME格式;URLDecoder:HTML格式解码的工具类,它能将String从
application/x-www-form-urlencoded MIME格式解码。
由于页面是采用velocity页面模板技术做的,所以需要在页面对传递的中文参数进行编码。
先写一个工具类:ChineseHandler

public class ChineseHandler {
 //将字符窜编码
 public static String getAfterEncodedContent(String content) {
  String newContent = "";
  try {
   newContent = URLEncoder.encode(content, "UTF-8");
  } catch(UnsupportedEncodingException e) {
   newContent = "";
  }
  return newContent;
 }

 //将编码后的字符窜解码
 public static String getAfterDecodedContent(String content) {
  String newContent = "";
  try {
   newContent = URLDecoder.decode(content, "UTF-8");
  } catch(UnsupportedEncodingException e) {
   newContent = "";
  }
  return newContent;
 }
}

 然后写一个配置文件:暂时命名为toolbox.xml

<?xml version="1.0" encoding="UTF-8"?>
<toolbox>
 <xhtml>true</xhtml>
 <tool> 
  <key>chineseHandler</key> 
  <scope>application</scope> 
  <class>com.association.util.ChineseHandler</class> 
 </tool>
</toolbox>

 再然后再web.xml文件中作velocity的配置:

<!-- velocity -->
  <servlet>
    <servlet-name>velocity</servlet-name>
    <servlet-class>
     org.apache.velocity.tools.view.servlet.VelocityViewServlet
    </servlet-class>
    <!--这里初始化上面的配置文件,这样我们在velocity的页面中就可以直接使用我们开始定义的编码解码工具类(ChineseHandler)了,-->
    <init-param>
      <param-name>org.apache.velocity.toolbox</param-name>
      <param-value>/WEB-INF/toolbox.xml</param-value>
    </init-param>
  </servlet>
   <servlet-mapping>
    <servlet-name>velocity</servlet-name>
    <url-pattern>*.vm</url-pattern>
  </servlet-mapping>

 这样,我们在velocity的页面中就可以这样使用了:

<a href="xxxxxxxxxxxx?keyword=$!chineseHandler.getAfterEncodedContent('中文你好')" />

 这时,你的浏览器地址栏上是不是显示了提交的路径和一串%和字母,这样既看不到提交的具体内容,
也很好地解决了中文乱码问题,这时在后台(Servlet或Strust)获得提交的字符窜参数,再调用上面
的工具类的getAfterDecodedContent方法,把字符窜解码,这样就OK了。
如果你的页面是JSP,那更好办,直接

<a href="xxxxxxxxxxxx?keyword=<% java.net.URLEncoder.encode('中文你好', 'UTF-8')" %> />
0
0
分享到:
评论

相关推荐

    tomcat get提交中文乱码解决方案

    tomcat get提交中文乱码解决方案,修改tomcat server.xml 中以下为

    FORM表单中文乱码问题分析与解决

    解决方法:解决中文乱码问题的方法有两种,一种是使用POST方式,另一种是使用GET方式。 1、POST方式:在POST方式中,我们可以使用request.setCharacterEncoding("UTF-8")来指定解码方式为UTF-8。这将使服务器使用...

    spring3 MVC GET提交方式乱码解决

    总结,解决Spring 3 MVC中GET提交方式乱码问题,主要涉及服务器端的字符编码过滤器配置、Controller方法的参数接收以及前端页面的编码设置。理解HTTP协议和字符编码原理,以及正确配置Spring MVC,将有助于避免此类...

    解决jsp提交乱码的问题

    #### 二、解决GET请求乱码问题 针对GET请求,可以通过以下几种方式来解决乱码问题: 1. **修改Tomcat配置**:可以在`server.xml`文件中的`Connector`元素下添加`URIEncoding`属性,指定URL编码格式。例如: ```...

    JSP中文乱码问题解决办法

    JSP 中文乱码问题解决办法 JSP 页面中中文乱码问题是指在 JSP 页面中使用中文时,页面显示...解决 JSP 中文乱码问题需要从多方面入手,包括设置页面的字符编码、使用 POST 方式提交表单、使用 GET 方式提交表单等。

    解决了中文乱码的http的get和post请求demo

    总的来说,解决HTTP请求中的中文乱码问题,核心在于正确地设置编码格式,并在发送请求前对中文数据进行编码。无论是GET还是POST请求,都需要确保客户端和服务器之间对字符编码的一致理解。通过阅读提供的文档和示例...

    配置web-xml解决中文乱码问题.pdf

    配置 Web.xml 解决中文乱码问题 本文主要讨论了在 Web 开发中遇到的中文乱码问题,并提供了一些解决方案。首先,需要确定中文乱码问题不是由浏览器引起的,然后讨论了 Tomcat 服务器配置和数据库 bean 配置中的一些...

    post和get提交乱码处理

    本文将深入探讨如何处理POST和GET提交时的乱码问题,以确保网页显示正常,避免出现中文或者其他非ASCII字符的乱码现象。 首先,我们要理解POST和GET的区别。POST请求通常用于向服务器发送大量数据或修改服务器资源...

    如何解决Tomcat下中文乱码问题?

    总结来说,解决Tomcat下的中文乱码问题,关键在于确保JSP页面的编码与服务器设置一致,并在处理表单提交时正确设置请求的字符编码。在实际开发中,推荐使用UTF-8作为统一的编码标准,因为UTF-8能够兼容各种语言,...

    Struts2中文乱码问题最终解决方案

    这将强制服务器解析URL时使用UTF-8编码,从而解决GET请求的中文乱码问题。 4. **Tomcat配置**: 在`server.xml`中,`&lt;Connector&gt;`标签用于定义Tomcat如何处理HTTP连接。添加`URIEncoding`属性是强制Tomcat使用特定...

    java中文乱码解决问题

    JAVA 中文乱码问题是开发过程中常见的问题之一,解决这个问题需要了解乱码产生的原因,然后对症下药。下面我们对容易产生乱码问题的场景进行分析,并提出解决方案。 1. 以 POST 方法提交的表单数据中有中文字符 在...

    解决Tomcat修改get提交请求乱码问题

    要解决GET请求乱码问题,我们需要采取以下步骤: 1. **配置JSP页面**:确保JSP页面的编码设置正确。在页面头部添加`&lt;%@ page pageEncoding="UTF-8"%&gt;`来指定页面编码为UTF-8。同时,如果表单是以POST方式提交,确保...

    jsp中文乱码问题jsp中文乱码问题详解

    jsp中文乱码问题的出现是由于编码格式不一致所导致的,可以通过确保jsp文件的存储格式、解码格式和控制浏览器的解码方式一致来解决乱码问题。同时,在使用Post和Get方式提交表单时,需要指定提交的编码格式,以避免...

    页面get请求 中文参数方法乱码问题的快速解决方法

    总结,解决GET请求中文参数乱码问题的关键在于前端和后端保持一致的编码和解码策略。通过使用`encodeURI()`函数两次编码,并在服务器端正确解码,可以有效避免乱码问题。同时,确保整个应用程序中的字符编码统一也是...

    jsp url中文乱码四种解决方式

    get提交中文乱码 地址重写中文乱码 jsp url中文乱码四种解决方式

    JSP利用过滤器解决request中文乱码问题.docx

    JSP利用过滤器解决request中文乱码问题 JSP中requestgetParameter中文乱码问题是经常遇到的问题,解决这个问题有多种方法,但利用过滤器解决request中文乱码问题是其中最有效的一种方法。本文将详细介绍如何使用...

    Ajax使用POST提交中文乱码问题.docx

    总结来说,解决Ajax POST提交中文乱码问题的关键在于前端编码两次并确保后端使用正确的解码方式。同时,服务器端页面的编码设置也很重要,如`&lt;%@ page pageEncoding="GB18030"%&gt;`确保了JSP页面的编码一致性。在实际...

    jsp页面传值中文乱码问题处理.docx

    jsp页面传值中文乱码问题处理 在 JSP 页面中传值时,中文字符可能会出现乱码问题,这...JSP 页面传值中文乱码问题可以通过修改编码方式、设置输出编码、接收参数编码、Get 提交编码和数据库连接参数编码等方式来解决。

    j2ee21:ajax01:get提交、post提交(完成用户名搜索),两者的区别(中文乱码问题、缓存问题)

    在这个教程中,我们将深入探讨AJAX的GET和POST提交方式,以及它们在实现用户名搜索功能时的区别,同时也会解决可能出现的中文乱码问题和缓存问题。 首先,GET和POST是HTTP协议中的两种主要请求方法,它们在AJAX中...

    解决JSP页面中文乱码问题

    ### 解决JSP页面中文乱码问题 #### 一、问题背景 在使用JSP(Java Server Pages)技术开发Web应用程序的过程中,经常会遇到中文乱码的问题。特别是在接收表单提交的数据或者显示数据库查询结果时,中文字符可能会...

Global site tag (gtag.js) - Google Analytics