0

私はフラッシュから(Facebookダイアログ用の)URLを生成しています:

var lvs_url = "http://www.facebook.com/dialog/feed?app_id=208524139202627&name=š š&caption=&description=&link=http://apps.facebook.com/celjska_puzzle&redirect_uri=http://apps.facebook.com/celjska_puzzle/"
var lvo_req : URLRequest = new URLRequest( lvs_url ) ;
navigateToURL( lvo_req , "_blank" );

しかし、その URL がブラウザに到達するまでに、šは%9Aに変わり、Facebook のポップアップに?-diamondとして表示されます。

ただし、ブラウザは%20で問題ありません

エンコードされた URL は次のとおりです。 /apps.facebook.com/celjska_puzzle/

4

1 に答える 1

0

試してくださいencodeURIComponent

var lvs_url = "http://www.facebook.com/dialog/feed?app_id=208524139202627&name="+encodeURIComponent("š š")+"&caption=&description=&link=http://apps.facebook.com/celjska_puzzle&redirect_uri=http://apps.facebook.com/celjska_puzzle/";
var lvo_req : URLRequest = new URLRequest( lvs_url ) ;
navigateToURL( lvo_req , "_blank" );

[ドキュメント](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLRequest.html#URLRequest()) から:

URLRequest オブジェクトを作成します。

System.useCodePageがの場合true、リクエストは Unicode ではなくシステム コード ページを使用してエンコードされます。

System.useCodePageがの場合false、要求はシステム コード ページではなく Unicode を使用してエンコードされます。

仕様は次のように述べています。

非 ASCII 文字は最初に UTF-8 [STD63] に従ってエンコードする必要があり、次に対応する UTF-8 シーケンスの各オクテットをパーセントでエンコードして URI 文字として表す必要があります。

これは、URL の"š"ようにエンコードする必要があることを意味します。Unicode を使用してエンコードされて%C5%A1いるSystem.useCodePageことfalseが 必ずしも.UTF-8

UTF-8ファイルで文字通り使用している場合は、ファイルをエンコーディングで保存する必要があることにも言及する必要が"š"あります。

于 2012-07-15T14:14:25.747 に答える