首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

flex下传乱码解决

2012-11-07 
flex上传乱码解决1)背景:使用URLRequest和FileReference进行上传;后台均使用utf-8字符编码;上传组件使用co

flex上传乱码解决

1)背景:

使用URLRequest和FileReference进行上传;后台均使用utf-8字符编码;上传组件使用cos

?

2)乱码原因:

其一:上传附件标题是乱码,原因是URLRequest没法设置字符集类型,FileReference在上传的时候使用了iso8859-1,如果是java后台解决办法如下:

fileName=new String( filePart.getFileName().getBytes("iso8859-1"), "utf8" );

其二:

发送附件时,接收方接受附件,中文标题显示乱码。原因:

因为MIME规范要求附件标题必须是US-ASCII字符

解决办法很简单,对文件名进行编码再发送:

mbp.setFileName(MimeUtility.encodeText(filename));一般情况下接收端会自己解码,如果是java的接受端会如下:String filename = MimeUtility.decodeText(part.getFileName());
附:JavaMail API是Java平台的一个可选包,同时也是J2EE规范的一部分。它提供了一个独立于系统平台和具体协议的邮件框架,可以用以实现email相关的各项应用。Sun所实现的的最新版本(JavaMail API 1.4 EA)中已经对中文有很好的支持,但发送中文名称的附件仍然会出现乱码问题。这并不是Sun本身造成的bug,而是因为MIME规范要求附件标题必须是US-ASCII字符,同时又不允许对参数进行编码,因此JavaMail API中并不会主动对含有非ASCII字符的文件名进行编码处理。但是,JavaMail同时也提供了工具类使得用户可以方便的对类似情况进行手工处理:对文件名进行编码:mbp.setFileName(MimeUtility.encodeText(filename));对文件名进行解码:String filename = MimeUtility.decodeText(part.getFileName());

?

热点排行