ホームページ > バックエンド開発 > PHPチュートリアル > FLASH を使用して PHP で生成された XML を取得することが文字化けの究極の解決策です_PHP チュートリアル

FLASH を使用して PHP で生成された XML を取得することが文字化けの究極の解決策です_PHP チュートリアル

WBOY
リリース: 2016-07-21 15:44:52
オリジナル
949 人が閲覧しました

探索の末にようやく解決しました。それを記録し、一般的な解決策も記録します。 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

www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/320424.html技術記事探索の末にようやく解決しました。それを記録し、一般的な解決策も記録します。 XML-FLASH の文字化けが発生した場合は、次のことをすぐに確認できます。 1. XML に全く問題がないと確信できる状況: まずは...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート