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

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

2012-11-23 
Flex与java基于HttpService通信的中文参数传递乱码问题?? ? 刚学习Flex,在开始学习Flex的Remote通信时,似

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方式)的差异吧。

?

?

热点排行