解决swfupload上传控件文件名中文乱码问题 三种方法

来源:互联网 发布:圣菲概预算软件 编辑:程序博客网 时间:2024/06/03 12:35
最近公司让将以前的上传控件升级成可以一次选择多个文件的控件,目前比较流行的是使用SWFUpload控件,这个控件的详细介绍可以参见百度http://baike.baidu.com/view/1332553.htm?fr=ala0_1_1。

     在使用这个控件批量上传文件时发现中文文件名都是乱码,在网上查了半天,找了几个办法,特总结如下:

     第一种:fileName= new String(fileName.getBytes("UTF-8"),"GBK");

     用这种方式能解决大部分乱码,但如果文件名中有特殊字符和标点符号有时候会转不过来。

     第二种:我使用的是这种办法,测试已经通过
 

view plaincopy to clipboardprint?
  1. /**在设置时需要设置一下上传事件
  2.   *upload_start_handler : this.onUploadStart,
  3.   *动态传参数,解决文件名中文乱码问题
  4. **/ 
  5. onUploadStart : function(file) { 
  6.   var post_params = this.settings.post_params; 
  7.   Ext.apply(post_params,{ 
  8.          'fileName':encodeURIComponent(file.name) 
  9.   }); 
  10.   this.setPostParams(post_params); 
  11. //在读取的类中将文件转码即可  
  12. String fName = URLDecoder.decode(fileName, "UTF-8"); 
[c-sharp] view plaincopyprint?
  1. /**在设置时需要设置一下上传事件
  2.   *upload_start_handler : this.onUploadStart,
  3.   *动态传参数,解决文件名中文乱码问题
  4. **/ 
  5. onUploadStart : function(file) { 
  6.   var post_params = this.settings.post_params; 
  7.   Ext.apply(post_params,{ 
  8.          'fileName':encodeURIComponent(file.name) 
  9.   }); 
  10.   this.setPostParams(post_params); 
  11. //在读取的类中将文件转码即可 
  12. String fName = URLDecoder.decode(fileName, "UTF-8"); 

  第三种:配置web.config配置文件.

原创粉丝点击