我是在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
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方法。
,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
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方法。
,websphere还是搞不懂啊,有时间慢慢研究那玩意吧,感谢大家的关注,特别是siyi2005给出的精彩回答,
解决的过程其实很简单,因为我这是乱码中的 URL 字符 encoding 问题,所以我把所有<a href="">中的
传参都改为form的<input name="CateName" value="<%=CateName %>" type="hidden"/>传参,然后用js提交。
特别指明 form一定要用post方法。
#6
我也想知道,websphere有没有像tomcat中那种解决的方式.