トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     unescapeについて
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
c-geru
Åê¹ÆNo.4565
投稿日時: 2004-3-5 3:31
職人
居住地: 文京区本郷
投稿: 209
使用環境:
10.6.8+ CS5.5
Win7+ CS4
unescapeについて
unescapeについての質問です。

以下のような形で、変数aaaを渡して、FLASHでunescapeしようとしてます。

引用:
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
WIDTH="550" HEIGHT="400" id="test" ALIGN="">
<PARAM NAME=movie VALUE="test.swf?aaa=%8E%96%8B%C6%95%94"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED src="test.swf?aaa=%8E%96%8B%C6%95%94" quality=high bgcolor=#FFFFFF WIDTH="550" HEIGHT="400" NAME="test" ALIGN=""
TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>


FLASH側での処理はこんな感じです。

引用:
//---テキストをSHIFT-JIS扱いに
System.useCodePage = true;
//
var w = unescape("%8E%96%8B%C6%95%94");
trace("1>>>"+w);
trace("2>>>"+unescape("%8E%96%8B%C6%95%94"));
var X = "%8E%96%8B%C6%95%94";
trace("3>>>"+unescape( X));
this.txtMsg.text=unescape("%8E%96%8B%C6%95%94")+newline;
this.txtMsg.text+="aaa1>>>>"+aaa+newline;
this.txtMsg.text+="aaa2>>>>"+unescape(aaa)+newline;


テキストフィールドへの戻り値は、こうなります。

引用:
事業部
aaa1>>>>?????
aaa2>>>>ツ篠鳴業閉

変数aaaの値(%8E%96%8B%C6%95%94)がきちんと取れていないようなんですが、これをunescapeその他で正しい文字列(事業部)として認識することは可能なんでしょうか?

そもそもエンコード/デコードについて勘違いしているような気もするんですが

MXでF6書き出しして、XP+IE6、OSX10.2.8+IE5.2+Safari1.1で確認しています。

ご指摘その他、よろしくお願いします。
森 なおき
Åê¹ÆNo.4566
投稿日時: 2004-3-5 6:17
モデレータ
居住地: 福岡(心は大阪)
投稿: 527
使用環境:
:MacOSX10.6.8
:FlashCS5.5
Re: unescapeについて
なおきです。
これって結構有名なバグですね(^^;
Shift_JISでURLエンコードしたものだけが引っかかるんですよね。
試しにHTMLの中のテキストをエンコードしていないものにしたら
正常にわたるのが確認できると思います。もしくはUTF-8で渡してもいいですが。

で、これを強引に解決するコードをyouichさんか誰かが書いていたような
気がしますが、ちょっと見当たりませんでした(- - ;
気づいてくれるといいのですが・・・(笑)


----------------
な お き
Dev.:MacOSX+FlashCS5.5
View:---

youich
Åê¹ÆNo.4575
投稿日時: 2004-3-5 15:06
職人
居住地: kobe
投稿: 349
使用環境:
Tiger
Re: unescapeについて
引用:

で、これを強引に解決するコードをyouichさんか誰かが書いていたような
気がしますが、ちょっと見当たりませんでした(- - ;
気づいてくれるといいのですが・・・(笑)


う??、気付いてたんですけどね、、試したけどできません
σ(^^がやりそうなことやけど、ほんまにできたんやろか

Flashに引数が渡されてunescapeする時はSystem.useCodepageが効いてないと思うんです、
ちょうど↓のような感じでしょうか。

System.useCodepage = true;
sjisEnc = escape("事業部");

//↓queryString
System.useCodepage = false;
utfStr = unescape(sjisEnc);

//↓Stage
System.useCodepage = true;
trace(utfStr);


これ、直せるんかなぁ


----------------
- yo

c-geru
Åê¹ÆNo.4584
投稿日時: 2004-3-5 17:25
職人
居住地: 文京区本郷
投稿: 209
使用環境:
10.6.8+ CS5.5
Win7+ CS4
Re: unescapeについて
小川です。
なおきさん、どうもです。
引用:
これって結構有名なバグですね(^^;

有名だったんですね(^^;
ここの検索やML時代のログには引っかかるものがなかったんで・・・。

引用:
Shift_JISでURLエンコードしたものだけが引っかかるんですよね。
試しにHTMLの中のテキストをエンコードしていないものにしたら
正常にわたるのが確認できると思います。もしくはUTF-8で渡してもいいですが。

そうですよね。これは事前に確認してました

普段はHTMLのパラメタに2バイト文字は入れないんですが、テストのためサーバ処理の代替に、
HTMLフォームから別HTML渡した値をlocation.searchでFLASHにくっつけて書き出す・・・というのを試していたもので。

情報ありがとうございました。
バグであれば仕方ないですね
c-geru
Åê¹ÆNo.4585
投稿日時: 2004-3-5 17:28
職人
居住地: 文京区本郷
投稿: 209
使用環境:
10.6.8+ CS5.5
Win7+ CS4
Re: unescapeについて
小川です。
youichさん、どうもです。

引用:

Flashに引数が渡されてunescapeする時はSystem.useCodepageが効いてないと思うんです、
ちょうど↓のような感じでしょうか。
引用:

System.useCodepage = true;
sjisEnc = escape("事業部");

//↓queryString
System.useCodepage = false;
utfStr = unescape(sjisEnc);

//↓Stage
System.useCodepage = true;
trace(utfStr);

確かに効いていないようですね。気付かなかったです。
情報ありがとうございました。
森 なおき
Åê¹ÆNo.4602
投稿日時: 2004-3-6 1:35
モデレータ
居住地: 福岡(心は大阪)
投稿: 527
使用環境:
:MacOSX10.6.8
:FlashCS5.5
Re: unescapeについて
なおきです。
>>youichさん
すんません、記憶違いで呼んでしまって(^_^;)
僕は夢でも見てたようです(笑)
そのコード全部覚えてくればよかった?

>>小川さん
お役に立てなくて申し訳ないです。
面倒ですよねえ。この問題・・・。


----------------
な お き
Dev.:MacOSX+FlashCS5.5
View:---

c-geru
Åê¹ÆNo.4607
投稿日時: 2004-3-6 2:00
職人
居住地: 文京区本郷
投稿: 209
使用環境:
10.6.8+ CS5.5
Win7+ CS4
Re: unescapeについて
小川です。

引用:
>>小川さん
お役に立てなくて申し訳ないです。
面倒ですよねえ。この問題・・・。

いえいえ、バグだとはっきりしただけで助かりました。
いろいろ試して一晩潰したんで
youich
Åê¹ÆNo.4616
投稿日時: 2004-3-6 14:55
職人
居住地: kobe
投稿: 349
使用環境:
Tiger
Re: unescapeについて
引用:

naokiさんは書きました:
なおきです。
>>youichさん
すんません、記憶違いで呼んでしまって(^_^;)
僕は夢でも見てたようです(笑)
そのコード全部覚えてくればよかった?

>>小川さん
お役に立てなくて申し訳ないです。
面倒ですよねえ。この問題・・・。

お気軽におよび下さいませσ(^^

しかし、、僕も記憶があるようでないようで(^^l
で、ふと_urlで取ってもええんちゃうかなぁと、、


System.useCodepage = true;


function parseQuery(qString) {
    var queries = qString.split("&");
    var query = {};
    for (var i = 0; i<queries.length; i++) {
        var items = queries[it].split("=");
        query[items[0]] = unescape(items[1]);
    }
    return query;
}

query = parseQuery(_url.split("?")[1]);


this.txtMsg.text = query['msg'];


----------------
- yo

森 なおき
Åê¹ÆNo.4631
投稿日時: 2004-3-7 11:08
モデレータ
居住地: 福岡(心は大阪)
投稿: 527
使用環境:
:MacOSX10.6.8
:FlashCS5.5
Re: unescapeについて
なおきです。

引用:
お気軽におよび下さいませσ(^^

ありがとうございます

なるほど_urlですか。ええアイディアですね。
どこにでも抜け道ってあるもんですな(^^;


----------------
な お き
Dev.:MacOSX+FlashCS5.5
View:---

c-geru
Åê¹ÆNo.4646
投稿日時: 2004-3-7 16:13
職人
居住地: 文京区本郷
投稿: 209
使用環境:
10.6.8+ CS5.5
Win7+ CS4
Re: unescapeについて
なおきさん、youichさん、どうもです。

引用:
なるほど_urlですか。ええアイディアですね。
どこにでも抜け道ってあるもんですな(^^;

たしかに「なるほど」ですね。
ありがとうございます?。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops