日期:2014-05-16  浏览次数:20464 次

extjs url中文乱码处理 -- encodeURI(filePath)

转:http://www.cnblogs.com/gxl521/archive/2011/10/19/2217786.html

?

项目中有一个功能,对数据库的备份与还原,在还原的工程中用户可以自己选择文件,文件中可能存在中文,那么我们以ajax的方式提交到后台就会出现乱码。所以需要我们对这样的数据进行编码,传到后台以相同的编码格式解码。

?

要对中文进行重编码如下代码:

filePath="E:\中文.sql";

Ext.Ajax.request({
??????url:"group.do?method=recoverSmu&fileName="+encodeURI(encodeURI(filePath)),
??????success:function(){
????????? //Ext.Msg.alert('提示','数据库还原成功');
?????????? Ext.Msg.alert(alertConfig.prompt,alertConfig.restoreSuccess);
???????}
?});。

后台程序中要对编码的内容解码如下:

? String fileName = request.getParameter("fileName");
??InputStream in = null;
??fileName = java.net.URLDecoder.decode(fileName, "UTF-8");//处理中文文件名的问题
??//fileName = new String(fileName.getBytes("UTF-8"),"GBK");//处理中文文件名的问题。

此过程便可完成对由url传递中文进行解析。

?

附录:

escape()编码,不能编码URI unescape()解码,不能编码URI
encodeURIComponent()编码范围比encodeURI大些 decodeURIComponent()解码范围比encodeURI大些
encodeURI()对一个URI编码 decodeURI()对一个URI解码
isFininte()检测表达式的值,如果不是无穷大或NaN则为True