websphere5.1 URL传递中文参数问题 ,急!

时间:2022-09-19 08:02:44
服务器环境linux as3+websphere5.1
我是在tomcat5。0编译然后移植到websphere5.1上的,在tomcat下可以通过配置conf下的server.xml中的
URIEncoding="GBK"解决URL传递中文参数问题,也就是如下所示:
<Connector port="8888"   maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" 
maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100"  
 connectionTimeout="20000" disableUploadTimeout="true"  URIEncoding="GBK"/>
但是在websphere5.1上我就不知道了,在网上搜索说是按照如下设置:
在控制台里,选应用服务器-->【你的应用服务器】-->进程定义-->java虚拟机-->一般JVM自变量,
然后输入:-Ddefault.client.encoding=GBK -Dfile.encoding=GBK 
照着设置后发现还是不行,也试了其他的办法,还是没能解决,小弟以前没用过websphere,对websphere一点
都不熟,跪求各位大哥帮忙,小弟在这先谢谢了。

6 个解决方案

#1


URL后面的参数最好用URLEncoding编码,服务端收到后再解码。

#2


感谢famousboy,你说的这个方法我试了,还是不能解决问题

#3


websphere中决定使用哪种encoding过程如下
1.client.encoding.override设定了吗?
  yes->终了
  no->2
2.setCharacterEncoding()设定了吗?
  yes->终了
  no->3
3.request中Content-Type的charset有吗?
  yes->终了
  no->4
4.autoRequestEncoding=true设定了吗?(ibm-web-ext.xmi)
  yes->5
  no->6
5.根据request中language情报转换
 <WAS_root>/properties/encoding.properties
 <WAS_root>/properties/converter.properties
6.default.client.encoding设定了吗?
  yes->终了
  no->ISO-8859-1

你已经在最后一步(6)做了设定,encoding指定上应该没问题。
所以确认以下两点
1,设定default.client.encoding后,重起Server了吗?
2,URLEncoding你是怎么用的?

String newurl = URLEncoding(URL,"GBK");
encoding后的结果象下面这样,汉字变成了类似%2b%ed%2的东西
http://hostname:port/contextroot/test.jsp?name=%2b%ed%23

#4


楼上的强,不过websphere5.1好象对中文支持很好啊。没有碰到过楼主的问题。

#5


前几天忙,没有时间上来,问题已经解决,不过不是通过配置websphere解决的,而是修改了自己的程序
,websphere还是搞不懂啊,有时间慢慢研究那玩意吧,感谢大家的关注,特别是siyi2005给出的精彩回答,
解决的过程其实很简单,因为我这是乱码中的 URL 字符 encoding 问题,所以我把所有<a href="">中的
传参都改为form的<input name="CateName" value="<%=CateName %>" type="hidden"/>传参,然后用js提交。
特别指明 form一定要用post方法。

#6


我也想知道,websphere有没有像tomcat中那种解决的方式.

#1


URL后面的参数最好用URLEncoding编码,服务端收到后再解码。

#2


感谢famousboy,你说的这个方法我试了,还是不能解决问题

#3


websphere中决定使用哪种encoding过程如下
1.client.encoding.override设定了吗?
  yes->终了
  no->2
2.setCharacterEncoding()设定了吗?
  yes->终了
  no->3
3.request中Content-Type的charset有吗?
  yes->终了
  no->4
4.autoRequestEncoding=true设定了吗?(ibm-web-ext.xmi)
  yes->5
  no->6
5.根据request中language情报转换
 <WAS_root>/properties/encoding.properties
 <WAS_root>/properties/converter.properties
6.default.client.encoding设定了吗?
  yes->终了
  no->ISO-8859-1

你已经在最后一步(6)做了设定,encoding指定上应该没问题。
所以确认以下两点
1,设定default.client.encoding后,重起Server了吗?
2,URLEncoding你是怎么用的?

String newurl = URLEncoding(URL,"GBK");
encoding后的结果象下面这样,汉字变成了类似%2b%ed%2的东西
http://hostname:port/contextroot/test.jsp?name=%2b%ed%23

#4


楼上的强,不过websphere5.1好象对中文支持很好啊。没有碰到过楼主的问题。

#5


前几天忙,没有时间上来,问题已经解决,不过不是通过配置websphere解决的,而是修改了自己的程序
,websphere还是搞不懂啊,有时间慢慢研究那玩意吧,感谢大家的关注,特别是siyi2005给出的精彩回答,
解决的过程其实很简单,因为我这是乱码中的 URL 字符 encoding 问题,所以我把所有<a href="">中的
传参都改为form的<input name="CateName" value="<%=CateName %>" type="hidden"/>传参,然后用js提交。
特别指明 form一定要用post方法。

#6


我也想知道,websphere有没有像tomcat中那种解决的方式.