flex java 中文乱码,Flex与java基于HttpService通信的中文参数传递乱码有关问题

Flex与java基于HttpService通信的中文参数传递乱码问题

刚学习Flex,在开始学习Flex的Remote通信时,似乎没有遇到后台java与前台flex通信

时的编码问题,前俩天在维护一个系统时终于碰到了:开始客户端使用的是get方式传递中文

参数,在配置了Tomcat服务器的conf文件下server.xml中服务器的编码为utf-8后,仍不行,

后来在把get方式换成post方式时,程序调试成功,代码如下:

//u为url字符串,/doLoad为一个servlet的url pattern

var u:String ="http://localhost:8080/TestProject/doLoad”;

var request:URLRequest = new URLRequest(u);

request.method = URLRequestMethod.POST;

var vars: URLVariables = new URLVariables ();

vars["file"] = filePath; //把参数键,值对放到vars对象中. filePath含有中文

request.data = vars;

//myFile是自己定义的一个FileReference,Flex的一个负责上传或者下载的类

myFile.upload(request,param,false);

myFile.addEventListener(ProgressEvent.PROGRESS,onProcess);

myFile.addEventListener(Event.COMPLETE,onComplete);

而后发现用Get方式传递,其实只需要对参数进行Url的格式转换便正确,代码如下

var u:String="http://localhost:8080/TestProject/doLoad?file= "+encodeURIComponent(filePath);

var request:URLRequest = new URLRequest(u);

request.method = URLRequestMethod.GET;

myFile.upload(request,param,false);

myFile.addEventListener(ProgressEvent.PROGRESS,onProcess);

myFile.addEventListener(Event.COMPLETE,onComplete);

因为Tomcat已经配置编码为utf-8,所以在servlet端对get的参数的获取就不需要进行解码

了,如果没有配置服务器编码则需要解码:

filename = request.getParameter("file");

//如果没有对tomcat的默认字符编码配置则需要如下url解码信息

filename= java.net.URLDecoder.decode(filename,"UTF-8");

这也是flex的HttpServices通信(Get和Post方式)的差异吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值