[size=medium]我现在在做一个实现下载功能的模块,使用了一个gridPanel,在panel的每一行都有一个超链接超链接对应要下载的文件,文件名如果是中文的话,前台Jsp的页面编码是UTF-8,在后台通过request.getParameter("fileName");得到的结果是乱码。我是使用了一个render函数生成的URL,函数如下
function renderURL(value,p,record){
return '';
}
因为value是js中的变量不能使用encode,在后台使用new String(s.getBytes("编码格式"),"编码格式");也不行,由于试了好多,所以就写成了编码格式,希望有了解的给指点一下。谢谢[/size]
js中的变量也可以通过javascript转换编码的
encodeURI('http://yourgame.iteye.com?name=中文');
特别是url传递参数的这种一定要用encodeURI来编码
在服务器那边可以这样来操作
System.out.println(URLDecoder.decode(url, "UTF-8"));
如果你使用的是tomcat的话,你可以配置在server.xml中这样配置
[code="xml"]
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>[/code]
页面最好也同意成UTF-8
ExtJS编程的时候最好工程也是UTF-8编码,页面也是UTF-8编码,js文件也是UTF-8编码
这样你肯定可以解决
如果你使用的是ext2.0,加上
[code="java"]
Ext.lib.Ajax.defaultPostHeader += '; charset=utf-8';
[/code]
这句话,然后tomcat加
URIEncoding="你项目的编码"
[size=xx-large][color=red]使用过滤器来统一你的编码格式[/color][/size]
[url]http://leonelwong.iteye.com/blog/311388[/url]这个是乱码处理集合