2010-11-12 34 views
0

我是Flash新手,嘗試與應用引擎服務器通信,但我遇到了一些編碼問題。Flash/App引擎請求數據編碼問題(GET工作,POST失敗)

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); 

這不起作用,給我在服務器端的一些編碼錯誤。但是,如果我切換到GET它自動地工作。

任何線索發生了什麼事以及我如何使用POST?

謝謝!

回答

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

你如何處理服務器端的請求?也許問題出在服務器端。

+0

謝謝!我想我可能會用這個問題跳過槍,問題在哪裏。得到它與POST一起工作。 – Nixarn 2010-11-12 18:58:11