ホームページ >バックエンド開発 >PHPチュートリアル >flash player 10 公式ダウンロード PHPで生成したXMLをFLASHで取得する究極の文字化け解決策

flash player 10 公式ダウンロード PHPで生成したXMLをFLASHで取得する究極の文字化け解決策

WBOY
WBOYオリジナル
2016-07-29 08:40:321938ブラウズ

探索の末にようやく解決しました。それを記録し、一般的な解決策も記録します。 XML<->FLASH の文字化けコードも発生した場合は、次のことをすぐに確認できます:
1. XML にまったく問題がないことが確実な状況:
まず第一に、Flash が XML を読み取るときに文字化けするコードには、静的属性 System.useCodepage が含まれます
公式説明: 「Flash Player にどのコード ページを使用するかを指示するブール値」外部テキスト ファイルを解釈します。」デフォルトは false です。
UTF8 でエンコードされた外部テキスト ファイルを使用する場合、PHP100.com はそれを心配する必要はありません。UTF8 でエンコードされていないテキスト ファイルを使用し、テキストに中国語の文字が含まれる場合は、フラッシュするように true に設定する必要があります。文字化けせずに文字を読むことができます。
AS3 では、最初に flash.system.System をインポートし、次に System.useCodePage=true を設定します。 PHP で UTF-8 エンコードされた XML を生成したい:
XML に中国語の文字を存在させたい場合は、UTF-8 エンコードを使用するのが最善です。 DOM を使用して XML を作成する前に、 $dom_XML = new DomDocument('1.0','UTF-8'); として宣言します。2 番目のパラメータは、XML ドキュメントの宣言部分のエンコード値に対応します。ただし、これは宣言されたエンコーディングにすぎないことに注意してください。$dom_XML->saveXML(); を使用して実際に生成される XML ファイルは、PHP スクリプトのソース ファイルと同じエンコーディング形式です。つまり、「どのエンコーディングが PHP ですか?」は何のエンコーディングです
3. XML ファイルの宣言エンコーディングは UTF-8 ですが、フラッシュで useCodepage がどのような値に設定されていても、読み取りが文字化けすることがよくあります。これは、通常、宣言部分が UTF-8 であっても、ファイル自体が UTF-8 ではないことが原因です。 UTF-8 (私自身は ANSI でコーディングしています、汗)。
これは深刻な問題を引き起こします。Firefox ブラウザは XML を正常に解釈できますが、IE (TT などの IE Core ブラウザを含む) では文字が間違っているというメッセージが表示され、Flash でも文字化けが表示されます。
この状況に対処するには 2 つの方法があります:
XML 宣言部分を GB2312 などの非 UTF-8 に変更し、FLASH の useCodepage=true を設定します。
XML をメモ帳で開き、「名前を付けて保存」コマンドを使用します。 UTF -8 として保存するだけで十分です
つまり、エンコーディング ステートメントはファイル自体のエンコーディングと一致し、名前と矛盾することはできません。
4. PHP ソース ファイルは UTF8 でエンコードされていません。FLASH が中国語の文字をサポートできるようにする XML を生成するにはどうすればよいですか?これは私が遭遇した状況です:
PHP は ANSI で保存されており、DOM を使用して生成された XML は当然 ANSI です。PHP100.com でエンコードされた XML ファイルに中国語の文字が含まれている場合、UTF-8 でエンコードされるように宣言されている場合でも、正しく読み取ることができません。
この前提のもと、FLASH が文字化けせずに XML を正しく読み取れるようにするには、エンコードを GB2312 に設定する必要があります。
しかし、PHP の DOM は GB2312 を使用して漢字を書くことはできません (理解できません。アドバイスをお願いします)? new DomDocument('1.0','GB2312'); の場合、XML の保存時に「conv エラーのため出力変換に失敗しました。バイト 0xCE 0xD2 0x5D 0x5D」などのエラーが発生します。つまり、私の ANSI PHP は、UTF-8 として宣言されているものの、実際には ANSI である XML ファイルしか生成できません。当然、このようなファイルは FLASH によって文字化けとして読み取られます (記事 3 を参照)。
私の解決策:
PHP が UTF-8 宣言を含む XML を生成した後、手順を追加します。XML ファイルを開き、ヘッダー宣言を書き換えて UTF-8 を GB2312 に置き換えます。ふふ、FLASHでもIEでもFFでも大丈夫ですよ!
上記は、コード化けの究極の解決策として FLASH 取得を使用して、Flash Player 10 公式ダウンロード用に PHP によって生成された XML を紹介しています。これには、Flash Player 10 公式ダウンロードの内容も含まれており、PHP チュートリアルに興味のある友人に役立つことを願っています。 。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。