人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

微軟ピンイン輸入法2.0を使用して、中国語テキストをFLASHで作成したテキストフィールドに入力したいのですが、ピンイン入力したあと、文字確定(ENTER)すると?に置き換わったり違う文字に変わったりしてしまいます。
例をあげると「diao4yu2dao3」と入力すると未確定のときは「釣魚島(←ここでは日本語にしています)」と出ますがENTER確定後は「???」になってしまいます。

FLASH以外のHTMLのテキストフィールドやGoogleToolBarなどでは文字化けせずそのまま入力されます。
上記にはどのような原因が考えられますでしょうか?

環境
OS:Win2000+SP4+WindowsUpdate
ブラウザ:IE6、FireFoxなど
FlashPlugin:7.0.19.0
MacromediaFlashMX2004Pro
指定フォント:SimSun
System.useCodepage = false;

●質問者: しいたけ
●カテゴリ:ウェブ制作
✍キーワード:2.0 firefox Flash HTML IE6
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● horosuke
●30ポイント

対策は別として、自分も同様の経験をしたことがあります。(Flashではありませんが)

恐らく、「IMEからデータを受取る側のアプリの内部文字コードがUTF-8ではない」とか。

結局、そのページの作成手法によるのですが、IEの中にはいろいろなアプリが存在するわけで、

それぞれが異なる文字コードで動いていると、ダメみたいです。

大丈夫な場合もあるようですが。

確認方法は、IMEを停止させた状態で、アルファベットとか数字などを入力させて、

そのまま通るようであれば、文字コードの違いだと思います。

簡単にできる再現確認

1)簡単なwebページを作成する。

その際、漢字表現(=全角文字)を含むHTMLを保存する際、文字コードにUTF-8を指定。

そこから外部のJavaScriptを呼び出すようにしておく。

2)そのHTMLから呼び出されるJavaScriptを、シフトJISで作っておく。

結果)HTMLから呼び出されたJavaScriptでは、文字コードをシフトJISで扱うので、

webページを開くと文字が化ける箇所(=JavaScriptが出力するメッセージの部分)が化ける。

という具合です。

とにかく、2バイト文字コードに対する扱いがまちまちなのが原因かと思われ。

で、提案ですが、呼び出す側のHTMLで、文字コード体系をUTF-8に変更してみては?

方向違いの発言でしたらご容赦くださいませ。

◎質問者からの返答

私もそう思ってHTMLもUTF-8にしてみたりもしたのですが変わりませんでした。

SWFの内部コードはデフォルトでUTF-8のはずですが、一応念のためにSystem.useCodepage = false;と書いてもみましたがそれもダメでした。

しかし、微軟ピンイン輸入法2.0のプロパティでインライン変換からシステムライン変換に変更してみたら文字化けが無くなりました。

ですが、できればデフォルトのままインライン変換で使いたいです。(;_;)


2 ● ilovegarbage
●30ポイント

文字コードの問題ですよね。

FlashはUnicodeを使うはずですので、EmEditorなどUnicodeの扱えるエディタを用いて入力してから一旦保存し、Unicodeに変換してから文字をコピー&ペーストしてはいかがでしょうか。

以前日本語のWindowsXPのIMEに中国語(簡体字)の設定をしてFlash(MX2004Proです)を作ったことがありますが、このときは文字化けしませんでしたよ。

◎質問者からの返答

書き忘れていました。

静的テキスト・ダイナミックテキスト・テキスト入力それぞれ、初めから入力していたりスクリプトから流し込むものは文字化けしませんでした。

テキスト入力でユーザーにピンイン入力させた場合のみ文字化けしてしまいます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ