转: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 | isNaN()判断是否NaN |
confirm()确认取消对话框 | prompt()带输入信息的对话框 |
paraseFloat()转换成小数 | paraseInt()转换成整数 |