加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SWFUpload文件上传时从后台返回中文乱码的问题

发布时间:2020-12-15 17:56:29 所属栏目:百科 来源:网络整理
导读:SWFUpload是一款使用Flash和Javascript开发的文件上传工具,最近在使用其实现文件上传功能时,发现从后台返回的中文经常乱码。 SWFUpload上传成功后,对后台返回结果的处理方法是: function uploadSuccess(file,serverData) { ......} 其中file是上传文件信

SWFUpload是一款使用Flash和Javascript开发的文件上传工具,最近在使用其实现文件上传功能时,发现从后台返回的中文经常乱码。

SWFUpload上传成功后,对后台返回结果的处理方法是:

function uploadSuccess(file,serverData) {
  ......
}

其中file是上传文件信息,serverData是从后台返回的数据。我们发现serverData中的中文出现乱码。而后台处理图片上传的Struts2 Action类返回时的代码如下:

servletResponse.getOutputStream().println(serverData);

后来发现就是上面这个地方出了问题。之前使用的是ServletOutputStream字节流的println方法,这个方法会将serverData字符串按照默认编码转化为字节流,而SWFUpload使用的是UTF-8编码,从而导致编码不一致,引起中文乱码。

后来想了两个解决方法:

1)对于字节流,手工对serverData按照UTF-8进行编码,并采用write方法输出字节流;

servletResponse.getOutputStream().write(serverData.getBytes("UTF-8"));

2)采用字符流,并指定字符流的编码为UTF-8。

servletResponse.setCharacterEncoding("UTF-8");
servletResponse.getWriter().print(serverData);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读