`
arganzheng
  • 浏览: 103532 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Struts2(JSP)的URL请求中文乱码问题

阅读更多

Struts2(JSP)的URL请求中文乱码问题
2009-6-8 星期一 雨

今天下午刚好广陵同学去面广西IBM,我就在他笔记本上试着解决上次没有解决的URL中文请求乱码问题。直到刚才才解决。不奇怪,因为中国人特有的问题一般是在网上找不到答案的。一搜,遇到同样问题的还真不少,给出解决方法的还不少,但是很多都是重复,贴来贴去的,说的头头是道,照着做就是不行。已经是见惯不怪了。
比如说使用Spring自带的charEncodingFilter不行,自己写了一个Filter也不行。总之试了很多方法,重启了无数次Tomcat,还是不行。
比如这篇: struts2中文乱码解决方法,似乎很有道理,但是照做还是不行。
不过有个很搞笑的现象,就是使用它介绍的最无奈的方法:

public class ConvertCharacter{
        public String Convert(String s){
            String result;
            byte[] temp ;
            try{
                temp = s.getBytes("iso-8859-1");
                result =  new String(temp,"utf-8");
            }
            return result;
        }
   }

发现在非IE内核的浏览器中是有效的,但是在IE内核的浏览器(比如Sogo),当传递的中文参数超过2个字就不行了。比如http://localhost:8080/JmsSyncSender/modifyUser?userId=某人就可以,但是http://localhost:8080/JmsSyncSender/modifyUser?userId=某某人,转换之后就是某某?乱码,也就是说从第三个字开始就是乱码了,太奇怪了,百思不得其解。

还是搜索一下英文吧,还真找的不错的文章。比如下面这篇:http://www.inter-locale.com/codeset1.jsp。不过它似乎跟上面那篇是一样的,只不过解释了为什么这么做的原因。

广陵回来后搜索到一篇文章,地址栏传值,中文乱码:
1.(方法一)
window.location=encodeURI(路径);

2.(方法二)tomcat做web服务器时,通过地址栏传中文参数时,为防止浏览器上的为乱码 
需在服务器server.xml中配置对应的端口中配置编码方式即可.例如:

<Connector port="8080" 
              maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 
              enableLookups="false" redirectPort="8443" acceptCount="100" 
              debug="0" connectionTimeout="20000" 
              disableUploadTimeout="true" useBodyEncodingForURI="true" URIEncoding="UTF-
8"/>

中加入useBodyEncodingForURI="true" URIEncoding="UTF-8"就可以了.

使用第二种方法试了一下,将上面的转换类代码去掉,发现两者的效果是一样的。后者是有Tomcat帮我做了转换。这虽然方便了一些,但是还是没有解决IE内核浏览器的问题。

最后,我想是不是因为使用URL传值的问题呢?如果采用Form传值会怎样呢?于是试了一下,使用Hidden field,并使用

<a href="javascript: on_update_click('<s:property value=username />') >更新</a>
 
function on_update_click(username){
   var txtUserId = document.getElementById("userId");
   if(txtUserId!=null){
       txtUserId.value= username;
   }
   document.listUserForm.action = "modifyUser";
   document.listUserForm.submit();
}

这下都可以了,深感欣慰。


分享到:
评论

相关推荐

    struts 2. 5.2解决中文乱码

    通过以上步骤,一般可以解决Struts 2.5.2框架下的中文乱码问题。但请注意,每个项目可能有不同的配置和需求,因此在实际应用中,还需要根据具体情况进行调试和调整。 在`myStruts`这个压缩包中,可能包含了示例代码...

    JSP struts2 url传参中文乱码解决办法.docx

    总的来说,解决JSP Struts2 URL传参中文乱码问题的关键在于确保整个应用系统的字符编码链路一致,包括但不限于客户端请求、服务器接收、应用处理、数据库存储等多个环节。通过设置合理的编码参数和过滤器,可以有效...

    struts中文乱码问题解决详细步骤

    解决这个问题通常涉及到编码设置的调整,下面将详细介绍两种方法来解决Struts中的中文乱码问题。 **方法一:配置Filter** 1. **添加过滤器**:首先,我们需要在Web应用的`web.xml`文件中添加一个`...

    struts下的汉字乱码问题

    总结来说,解决Struts下的汉字乱码问题,需要从页面、过滤器、服务器配置和Struts核心Servlet等多方面进行设置,确保在整个请求生命周期中,中文字符始终以正确的编码进行处理。这不仅涉及了前端的展示,还涉及到...

    struts2的中文乱码问题解决

    ### Struts2中文乱码问题解决方案 在使用Struts2框架进行Web开发的过程中,中文乱码问题是一个常见的挑战。这不仅影响用户体验,还可能导致数据不一致等问题。为了解决这一问题,我们需要理解其背后的原理,并采取...

    struts2中文乱码问题

    综上所述,解决Struts2中文乱码问题的方法主要包括设置JSP页面编码、配置Struts2国际化编码、修改web.xml配置、使用POST请求方式以及自定义过滤器等。开发者可以根据项目的具体情况选择合适的方法来解决中文乱码问题...

    Struts2乱码终极解决办法

    在开发基于Struts2框架的应用时,经常遇到的一个问题就是中文乱码。这不仅影响用户体验,还可能导致数据处理错误。本文将详细介绍如何彻底解决Struts2中的乱码问题,并提供实际可行的解决方案。 #### 二、乱码产生...

    struts 中文乱码问题解决

    在IT领域,特别是Web开发中,Struts框架作为Java Web应用的一个重要组成部分,其在处理中文字符时常常遇到乱码问题。这个问题不仅影响了用户体验,也增加了开发者的调试难度。本文将深入探讨Struts框架中中文乱码的...

    JSP struts2 url传参中文乱码解决办法

    特别是在使用JSP与Struts2框架时,通过URL进行参数传递时经常会发生中文乱码问题。解决此类问题的策略主要涉及到了两个层面的配置:Struts2框架自身的配置以及Web服务器(如Apache Tomcat)的配置。 首先,要解决...

    struts2获取参数,解决乱码,跳转

    在这个主题中,我们将深入探讨Struts2如何获取参数、解决乱码问题以及实现页面跳转。 首先,让我们来看看Struts2如何获取HTTP请求中的参数。在Struts2中,我们可以使用Action类来接收和处理请求参数。Action类是...

    eclipse struts 中文乱码问题图解

    在开发Java Web应用程序时,Eclipse和Struts框架的组合可能会遇到中文乱码的问题,这主要涉及三个方面:页面乱码、参数乱码以及国际化乱码。以下是对这些乱码问题的详细解答: 1. 页面乱码: 当网页编码设置为非...

    struts2中文乱码解决Demo

    本DEMO是为了解决Struts2在处理中文输入时可能出现的乱码问题,确保系统能够正确地接收和显示中文字符。 首先,我们要理解乱码产生的原因。在Web应用中,数据的传输通常涉及多种编码方式,如HTTP请求的默认编码通常...

    struts之中文乱码问题

    在处理中文字符时,Struts可能会遇到乱码问题,这主要是由于字符编码不一致或未正确配置导致的。下面我们将深入探讨这个问题,并提供解决策略。 **乱码产生的原因** 1. **请求编码不一致**:当用户通过表单提交...

    J2EE中Struts中四种解决中文乱码问题的方法

    ### J2EE中Struts框架下解决中文乱码问题的四种方法 在Java Web开发过程中,尤其是使用Struts框架时,经常会遇到中文乱码的问题。本文将详细介绍在J2EE环境下,利用Struts框架解决中文乱码问题的四种实用方法。 ##...

    struts1.2 解决中文乱码

    ### Struts 1.2 中文乱码问题详解与解决方案 #### 一、问题背景及原因分析 在 Web 应用开发过程中,特别是在使用 Java 的 Struts 1.2 框架时,中文乱码问题是开发者经常遇到的一个难题。这不仅影响用户体验,还会...

    struts2文件上传(解决中文乱码)

    Struts2是一个强大的Java Web...总之,解决Struts2中的中文乱码问题,关键在于配置正确的字符编码,并在文件上传和下载过程中处理好编码转换。通过以上步骤,你可以有效地在Struts2项目中实现对中文URL和文件名的支持。

    struts2乱码处理

    在Web开发中,特别是使用Struts2框架时,中文乱码问题常常困扰开发者。无论是前端还是后端,只要涉及中文字符的传递与处理,都有可能出现乱码现象。本文将针对Struts2中的中文乱码问题提供几种解决方案,包括在不同...

    struts处理中文乱码问题总结

    ### Struts处理中文乱码问题总结 #### 一、引言 在使用Struts框架进行Web应用程序开发过程中,中文乱码问题是开发者经常会遇到的技术难题之一。这类问题虽然看似不起眼,但如果处理不当,则可能会影响到用户体验...

    解决url中文乱码.doc

    总结,解决Java Web中的URL中文乱码问题,关键在于发送请求时使用`URLEncoder.encode()`进行编码,以及在接收请求时设置正确的字符编码,如在JSP页面和Struts2 Action中。同时,可以通过配置过滤器确保整个应用程序...

    struts2乱码与json插件(1)

    在这个主题中,“struts2乱码与json插件”主要关注两个方面:字符编码问题和JSON数据交互。 **字符编码问题** 在开发web应用时,乱码问题经常出现,尤其是在处理用户输入或显示非ASCII字符时。Struts2框架默认使用...

Global site tag (gtag.js) - Google Analytics