SWFUpload乱码问题的解决

目前比较流行的是使用SWFUpload控件,这个控件的详细介绍可以参见官网http://demo.swfupload.org/v220/index.htm

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

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

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

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

view
plain
copy
to clipboard

  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. //在读取的类中将文件转码即可
  13. String fName = URLDecoder.decode(fileName, "UTF-8");

[c-sharp] view
plain
copy

  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. //在读取的类中将文件转码即可
  13. String fName = URLDecoder.decode(fileName, "UTF-8");

第三种:配置web.config配置文件这种方法

swfupload是按照utf-8来编码的,而中文网站一般使用的编码是gb2312,你需要在使用sufupload的程序文件目录下重新定义xml.comfig文件,

如下:

[html] view
plain
copyprint?

  1. <configuration>
  2. <appSettings/>
  3. <connectionStrings/>
  4. <system.web>
  5. <globalization requestEncoding="utf-8"/>
  6. </system.web>
  7. </configuration>
<configuration>
    <appSettings/>
    <connectionStrings/>
    <system.web>
      <globalization requestEncoding="utf-8"/>
    </system.web>
</configuration>

现在的flash
最新版本,11.8.800.168 和 11.9 等有 bug,如果升级后,在使用 swfuploader、uploadify
等文件上传控件时,如果文件名是中文,就会出现中文乱码。大家可以知道到 swfupload 和 uploadify官方网站的 demo
里测试。

如果已经不小心升级了,可以通过以下办法解决:

    1. 到这来下载反安装文件,并卸载掉当前版本的 flash
      (通过别的办法卸载会无法安装旧版本的 flash 控件):http://download.macromedia.com/get/flashplayer/current/support/uninstall_flash_player.exe
    2. 到这来下载
      相对旧一点的版本,并安装(也可以去别的地方下载):http://file.myfiles.com.cn/Photo/FlashPlayer_v118800129X.zip
时间: 2024-10-03 13:47:04

SWFUpload乱码问题的解决的相关文章

IdHTTP设置SSL证书,乱码问题也解决了

要跟银行做接口,需要使用delphi来post数据,但对方提供的是https开头的网址,需要使用证书,对方已提供证书了,但是还是调用不成功,使用的是idhttp和TIdSSLIOHandlerSocketOpenSSL来post的,indy 版本是10.5.5, OpenSSL的dll版本是openssl-1.0.0-i386-win32.现在报的错是:“could not load certificate error:0906D06C:PEM routines:PEM_read_bio:no 

Linux中文乱码问题终极解决方法

方法一: 修改/root/.bash_profile文件,增加export LANG=zh_CN.GB18030该文件在用户目录下,对于其他用户,也必须相应修改该文件. 使用该方法时putty能显示中文,但桌面系统是英文,而且所有的网页中文显示还是乱码 方法二:修改/etc/sysconfig/i18n文件 #LANG="en_US.UTF-8"#SUPPORTED="en_US.UTF-8:en_US:en"#SYSFONT="latarcyrheb-s

【LaTex】Texstudio中中文文本乱码问题的解决方法

Texstudio中中文文本乱码问题的解决方法:1.因为默认编码是UTF8,ctex的编码是GBK,所以出现乱码.将texstudio编码设成GBK乱码自然消失.2.通过拷贝粘贴,不会出现乱码.3.texstudio构建的编译平台是pdflatex,GBK编码时无需加UTF8选项,加了反而慢,甚至出错.不知为什么?4.编码是UTF8时,宜用xelatex编译,很快.5.Sublimetext可将GBK编码转存为UTF8,转存后用texstudio打开不会出现乱码.如果出现将默认编码改成UTF8就

Myeclipse导入项目注释乱码问题的解决

参考的博客地址: http://blog.csdn.net/gaijianwei/article/details/20830445 今天导入 一个JSP 项目,注释 出现 乱码!(一般是不会发生的!) 原因是因为,我的项目是 GBK编码, 目前只要是国内的项目,一般都是吧(哈哈 有点绝对了),然而,我的MyEclispe 设置默认编码 的是UTF-8 !所以,在单击项目右键的时候,选择 属相栏,并没有 GBK项目! 如图:(今天不知怎么的 传不上 图片) 第一步: 修改 工作空间的 编码: 修改

SQLLDR导入乱码问题的解决

SQLLDR导入乱码问题的解决 处理过程: 1.本地建立控制文件 load data infile 'd:\TMP_KAITOUSHUJU.csv' into table TMP_KAITOUSHUJU fields terminated by ',' (TRADE_CO,FULL_NAME,CUSTOMS_CODE,CO_CLASS,VALID_DATE,RG_DATE,ADDR_CO,BUSI_TYPE,CONTAC_CO,TEL_CO,LAW_MAN,LAW_MAN_TEL,CO_TYPE

Python抓取页面乱码问题的解决

import urllib2 response=urllib2.urlopen('http://house.focus.cn/') html=response.read() print html.decode('gbk') Python抓取页面乱码问题的解决,布布扣,bubuko.com

[JavaEE]Get请求URI中带的中文参数在服务端乱码问题的解决方法

在Get请求中,如果请求参数中带有中文,如 http://localhost:8080/DinnerParty/shop/search?query=多伦多, 在服务端拿到的是乱码. 这是因为客户端提交过去的是UTF-8编码的数据,而服务端解析URi时可能使用的是 iso8859-1编码. 修改tomcat配置文件server.xml <Connector port="8080" protocol="HTTP/1.1"               connect

【转】Struts1.x系列教程(3):属性(资源)文件乱码问题的解决之道

转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/14/251244.html 资源文件不仅仅需要保存英文信息,在很多时候,也需要保存其他的语言信息,如中文信息.但Java的属性文件只支持英文,要想在属性文件中保存中文,需要使用"uxxxx格式,但这非常不方便,因此,本文将分别介绍如何使用native2ascii.exe和Eclipse插件的方式来解决这个问题. 一.使用na

CentOS中文乱码问题的解决方法

一.CentOS系统访问 xxx.cn ,发现中文乱码于是用以前的方式:# yum -y install fonts-chinese # yum -y install fonts-ISO8859 CentOS系统安装完成后,重新启动即可. 二.终端. gedit 显示乱码# vim /etc/sysconfig/i18n 将:LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16" 修改原内容为: LANG="zh_CN