我是Flash新手并试图与应用引擎服务器通信,但我遇到了一些编码问题。
var playerLoader:URLLoader = new URLLoader();
playerLoader.addEventListener( Event.COMPLETE, function(e:Event) { doStuff(); } );
var requestVars:URLVariables = new URLVariables();
requestVars.q = "åäö";
var urlRequest:URLRequest = new URLRequest( serverUrl );
urlRequest.method = URLRequestMethod.POST;
urlRequest.data = requestVars;
playerLoader.load( urlRequest );
这不起作用,在服务器端给我一些编码错误。但是,如果我将POST切换到GET,它会自动运行。
有什么线索以及我如何使用POST?
谢谢!
答案 0 :(得分:2)
据我所知,Actionscript的HTTP请求本身将以UTF-8编码。
我用这种方式为西班牙语字符工作:
var url:String = "historia.php";
var request:URLRequest = new URLRequest(url);
var requestVars:URLVariables = new URLVariables();
var now:Date = new Date();
requestVars.historia = "áóíúéñÁÓÍÚÉÑ";
request.data = requestVars;
request.method = URLRequestMethod.POST;
var urlLoader:URLLoader = new URLLoader();
urlLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
urlLoader.load(request);
在PHP方面(为清晰起见而恢复):
header ('Content-type: text/html; charset=utf-8');
if(isset($_POST['historia']) {
$historia = mysql_real_escape_string(utf8_decode($_POST['historia']));
$historia = filter_var($historia, FILTER_SANITIZE_STRING);
// insert into DB...
}
我使用utf8_decode()
,因为数据库未配置编码UTF-8
。
您如何在服务器端处理请求?也许问题出在服务器端。