「一気に最後まで読んだ」本、教えて下さい!

毎日コミュニケーションズのFlash入門書
『おしえて!!FLASH MX2004』の
9-5(P148,P149)にある
テキスト入力で検索エンジンの
作成方法についての質問です。

テキスト入力でテキストボックスを作った後、

「テキスト入力」フィールドが選択された状態で、

プロパティインスペクタ右下の「変数:」欄に、

Googleの変数名「q」を入れた後

ボタンを作成して下記のスクリプトを書きました。

on (release) {
this.getURL("http://www.google.co.jp/search",
"_blank", "GET");
}

作成したものに適当なキーワードを入力して

ボタンを押すとネットに接続し検索エンジンの

結果が表示されました。

(↑ここまでが本に書いてあったことです。)

これの応用でYahoo!の変数名「p」を入れた後

ボタンを作成して下記のスクリプトを書きました。

on (release) {
this.getURL("http://search.yahoo.co.jp/bin/search",
"_blank", "GET");
}

しかし、半角英数字の検索はできたものの

(※gooや19などの検索は可能)

日本語の検索はなぜか文字化けして

できませんでした。

(※教えて!gooと入力すると
 『謨吶∴縺ヲ・“oo』のように文字化けする。)

おそらく変数に問題があると思われるのですが

私には問題を解決することができませんでした。

どなたかご存知の方がいらっしゃいましたら

よろしくお願いします。

A 回答 (1件)

ムービーの外部とやりとりする日本語が文字化けする場合は、



 System.usecodepage = true;

というアクションを、どこかで実行してみてください。getURL で送信する直前でも構いませんし、メインのタイムラインのフレーム1でも構いません。
ただし、Google の検索エンジンにキーワードを渡す時は、この設定は false (デフォルトでは false になっています)でないと、今度は Google の方で文字化けが発生します。Google と Yahoo! の両方を利用するなら、getURL の直前にそれぞれで設定するなどの工夫が必要です。


Flash Player 6 からは、標準の文字のエンコード(文字を文字コードに変換して、データとしてやりとりできるようにする時のルール)に、UTF-8 という方式が採用されました。特に指示しなければ、外部から読んできたり Flash 側から送信する文字は、UTF-8 のルールに従って文字コードに変換されます。
Google では Flash Player 6 以降と同じく UTF-8 を採用しているようですので、特に何も指示しなくても、Flash から送られてきた検索キーワードが正しく解釈されます。
しかし Yahoo! では、日本語の扱いが Flash Player や Google とは違い、シフトJIS というエンコードを採用しているようです。(ちなみに、これまではシフトJIS が日本語の標準的なエンコードとして利用されていました。今でも利用は多いですが、方式としてはやや旧式です)
先述の通り、Flash Player から送信される文字は UTF-8 のルールに従って文字コードに変換されて送信されているため、Yahoo! では文字化けが発生するというわけです。

 System.usecodepage = true;

このアクションを実行すると、Flash Player でのエンコードが、従来のシフト JIS になります。変数を送信する場合もシフト JIS のルールで文字が変換されるので、Yahoo! でもキーワードが正しく解釈されるようになります。


検索に限らず、外部テキストファイルから読み込んだり、CGI と連携する際に文字化けが発生した場合は、大抵はこのアクションで解決できます。
Flash のテクニカルノートに詳しい解説がありますので、よろしければご参照ください。

参考URL:http://www.macromedia.com/jp/support/flash/ts/do …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。早速やってみました。

ボタンに設定されているアクションを以下のように

改良することで問題を解決することができました。

迅速丁寧な対応をしていただき

どうもありがとうございました。

on (release) {
System.useCodepage = true;

this.getURL("http://search.yahoo.co.jp/bin/search", "_blank", "GET");
}

お礼日時:2004/07/20 08:49

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