2008年09月27日

utf-8 で FLASHファイルが消えた

FLASHでパブリッシュされたswfファイルが埋め込まれたHTMLで、
文字コードをshift-jisからutf-8に変更したら、
swfファイルが表示されなくなってしまいました。


日本語サイトを海外向けにローカライズする中で起こった現象ですが、
公開中の前回分を見ても、shift-jisのままだったので、
そのままでも別に問題はないだろうとは思ったのですが、


utf-8の方が好ましいと考えて変えてみたところ、
なぜか表示されなくなりました。




そこで、Adobeから提供されているスクリプト
「AC_RunActiveContent.js」が怪しいと思い、


swfファイル表示部分の
<noscript></noscript>の中にしまわれた、
swfファイル表示用の<object></object>を、
試しに、まったく違うところにコピーすると表示されました。


これでスクリプトが原因とわかったので、
今度は「AC_RunActiveContent.js」ファイル自身の
文字コードをASCIIからutf-8に変えてみましたが、
結果は同じでした。




むむー、これはわからない。
まいった。




で、ググると、ありました。

▽FLASH-japan「AC_RunActiveContent.jsがUTF-8だと働かない?」
http://www.flash-jp.com/modules/newbb/viewtopic.php?topic_id=7653&forum=8




このページで親切な方が書き込んでらっしゃいますが、
swfファイル埋め込みの際に、
自動的にHTMLの<script></script>内に記述される、

------------------------------------------------------------------------------------------

if (AC_FL_RunContent == 0) {
//alert("このページでは ¥"AC_RunActiveContent.js¥" が必要です。");
} else {

------------------------------------------------------------------------------------------

で、「円記号(¥)」が問題でした。


が、単純に円記号をとっぱらうと、
「ダブルコーテーション(")」の無害化(?)ができなくなるので、
バックスラッシュに置き換えてみたところ、

------------------------------------------------------------------------------------------

if (AC_FL_RunContent == 0) {
//alert("このページでは /"AC_RunActiveContent.js/" が必要です。");
} else {

------------------------------------------------------------------------------------------

表示してくれました〜。




【まとめ】
スクリプトの中に円記号が混ざっているときは、要注意。


【MEMO】
バックスラッシュの変わりに、
記号表示用の「&quot;(&はホントは小文字)」にしてみたところ、
ダブルコーテーションにはならずに、
記述通りに、アラートが表示されてしまいました。

posted by CSSベースでのHTML(XHTML)レイアウト入門講座<polka> at 16:08 | Comment(0) | TrackBack(0) | javascript | このブログの読者になる | 更新情報をチェックする

人気ブログランキングへにほんブログ村 デザインブログ Webデザインへ

この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。