GET方式提交中文参数的解决方案
forking003
2010-01-19
1.%TOMCAT_HOME%\conf\server.xml文件的<Connector port="8080" >节点增加属性:URIEncoding="UTF-8";
2.escape(可能含有中文的str).replace('%', '\\');这个是unicode编码,服务端需要:StringUtils.decodeUnicode(str)处理一下才能还原成中文; 3.encodeURI(可能含有中文的str),这个是URI Encode,服务端需要用:java.net.URLEncoder.encode(str,"UTF-8")来还原成中文; 补充:第一种方式是可以直接传中文参数,不过一般不建议在GET参数后面直接发送中文参数;后2种方法都是编码转换类的,都需要在服务器端还原成中文;第3种方式在我们目前项目环境中因为struts2的拦截器处理机制,将"%"当作非法字符过滤掉了,所以是不能成功转换回中文的. 其他请跟帖补充,这个是常见问题,到时候汇总一下 |
|
truemylife
2010-01-21
也可以在web服务器端做配置,这样开发端就不用做转换了
|
|
smallhand
2010-12-24
在服务器端感觉不大合适,比我我们开发时用的是tomcat但是在生产环境下用的是websphere,这样修改不大方便。可以在前台在提交时用js转换一下。将gb2312转换成utf-8我这有现成的代码,有点长,需要的话给我留言。
|