flex的httpservice与java交互过程中的乱码问题
写程序这么久了,以为自己早已告别了乱码问题,可是最近在做flex和java交互的时候,再次遇到了乱码问题,不用说,又是一通乱试,将网上所有能找的方法试验了一遍,终于解决了这个问题。
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
initialize="getJsParam();init(event);doWork();flash.system.System.useCodePage=true"
addedToStage = "init2(event)"
preloader="iman.sps.asfile.MyProgressBar"
applicationComplete=""
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
在application中的initialize方法中加flash.system.System.useCodePage=true后,一切变正常了。在此说明:jsp页面GBK,workspace gbk(工程编码也为gbk), tomcat 编码为UTF-8,在此设置下flex页面向后台传值无乱码,希望对大家有所帮助。
但是,从后台传前台的返回值依然乱码,
public void acceptSheet() throws Exception{
String accountName = this.getSessionValue(SessionUtil.accountName);
String userName = this.getSessionValue(SessionUtil.userName);
request.setCharacterEncoding("GBK");
response.setContentType("text/html;charset=gbk;");
log.info("接单方法执行了");
String str ="";
try{
baseSheetService.acceptSheet(workItemId, accountName, userName);
str = "接单成功";
}catch(Exception e){
str="接单失败";
e.printStackTrace();
}
PrintWriter out = response.getWriter();
out.print(str);
}
request.setCharacterEncoding("GBK");
设置合适的编码可解决后台向前台传值问题。