Struts2 URL传递中文参数乱码问题

转载背景:

      小白在敲struts框架项目的时候,从jsp跳转到action类的过程中,传送的参数变成了乱码,检查了一下,关于编码设置,程序已经执行了编码过滤器EncodingFilter 和 在struts.xml中设置了<constant name="struts.i18n.encoding" value="utf-8"/>,但都抵挡不住来势汹汹的乱码??!,在网上看到此大神精简明了的总结,验证可行后,收!

-----------------------------------------------------------------------------------------------------------------------------

问题:在使用URL传递中文参数时出现乱码问题,代码如下:

[html]  view plain copy
  1. <s:iterator value="allfilepath" >  
  2.         <a href="fileprocess/FileDownLoadByName.action?path=<s:property/>" ><p><s:property/></p></a>  
  3.     </s:iterator>  

其中传递的参数path的值是从后台数据库中获取的 ,当在action中设置一属性path接收参数值时,若为中文出现乱码。

解决办法:可以通过以下代码解决乱码问题:

[java]  view plain copy
  1. newname=new String(getPath().getBytes("iso-8859-1"),"UTF-8");//解决URL传递过来的中文参数值的乱码问题  

首先使用 iso-8859-1字符集将字符串解码为字节序列,并将结果保存到一个字节数组当中;然后通过utf-8字符集解码该字节数组以创建新的字符串。

转自:http://blog.csdn.net/feipengzhao/article/details/7370483

-----------------------------------------------------------------------------------------------------------------

小白批注:

1. 在String类中,有个构造方法:

      String(byte[] bytes,Charset charset) :通过使用指定的charset 解码指定的 byte 数组,构造一个新的String

        2. 使用指定的编码格式将一个字符串转化为bytes的数组的方法:getBytes(Charset charset)

            

你可能感兴趣的:(Struts2 URL传递中文参数乱码问题)