- ベストアンサー
テキスト入力でYahoo!の検索エンジンが作成できない
- 毎日コミュニケーションズのFlash入門書『おしえて!!FLASH MX2004』の9-5(P148,P149)にあるテキスト入力で検索エンジンの作成方法についての質問です。
- テキスト入力でテキストボックスを作り、Google変数名「q」を入れた後にボタンを作成し、スクリプトを書くと検索エンジンの結果を表示できました。
- しかし、日本語の検索は文字化けしてできませんでした。問題の解決方法をご存知の方がいらっしゃいましたら、ご教示願います。
- みんなの回答 (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 のテクニカルノートに詳しい解説がありますので、よろしければご参照ください。
お礼
ご回答ありがとうございます。早速やってみました。 ボタンに設定されているアクションを以下のように 改良することで問題を解決することができました。 迅速丁寧な対応をしていただき どうもありがとうございました。 on (release) { System.useCodepage = true; this.getURL("http://search.yahoo.co.jp/bin/search", "_blank", "GET"); }