電子書籍の厳選無料作品が豊富!

環境:AS3.0/CS3

TextFieldに特殊文字があると真っ白になってしまい困っています。
PHP通信してデータベースにある文字列をTextFieldに表示させています。
"あいうえお"であれば当然問題なく表示されますが、
"あいうえお™" または "あいうえお™" などと特殊文字が入ると真っ白です。

myText.htmlText = "あいうえお™";
↑これも駄目なようで。

どうか解決策を教えてください。

A 回答 (1件)

tkmkokさん、


PHP側で、urlencode();を行って、変数を、SWF側に、引き渡してやる必要があります。以下、シンプルなテスト結果です。(phpも、UTF-8で記載してます)
-PHP側:
<?php
$str1='あいうえお&trade;';
$str2='あいうえお™';
$str1=urlencode($str1);
$str2=urlencode($str2);
print 'm1='.$str1.'&'.'m2='.$str2;//Flash側で、urldecode();をしてくれるはず。

-FLA側の第一フレームscriptレイヤー:
//ダイナミックテキストを2つ(m1_txtとm2_txtの2つ)設置しておく
//定番の外部ファイルから変数をロードする方法
//ここから
var loader:URLLoader=new URLLoader();
loader.dataFormat=URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE,xComplete,false,0,true);
loader.load(new URLRequest("./special.php"));//PHPのファイル名を、special.phpとした
function xComplete(e:Event):void {
loader.removeEventListener(Event.COMPLETE,xComplete);//不要なので、一応、登録削除
var vars:URLVariables=e.target.data;
m1_txt.text=vars.m1;//PHP側で定義した、変数m1=XXXXを代入
m2_txt.text=vars.m2;//同様に、変数m2=XXXXを代入

}
//ここまで

以上で、意図した内容で、表示されます。
    • good
    • 0
この回答へのお礼

早速ありがとうございます!
バッチリいけました!

urlencode();
特殊文字のようなケースはPHP側で
URLエンコードしておけばいいって訳ですか。
なんかエンコードまわりって本当ややこしいです。
日本人ならではの苦労でしょうか。。

お礼日時:2009/11/21 22:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!