FLASH を使用して PHP で生成された XML を取得することが文字化けの究極の解決策です_PHP チュートリアル
Jul 21, 2016 pm 03:44 PM
探索の末にようやく解決しました。それを記録し、一般的な解決策も記録します。 XML<->FLASH の文字化けコードも発生した場合は、次のことをすぐに確認できます:
1. XML にまったく問題がないことが確実な状況:
まず第一に、Flash が XML を読み取るときに文字化けするコードには、静的属性 System.useCodepage が含まれています
公式説明: 「Flash Player にどのコード ページを指示するかを示すブール値」外部テキスト ファイルを解釈するために使用します。「デフォルトは false。
UTF8 でエンコードされた外部テキスト ファイルを使用する場合、bkJia.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 です。bkJia.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でも大丈夫ですよ!
http://www.bkjia.com/PHPjc/320424.html

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法
