溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么解決PHP生成的XML以FLASH獲取為亂碼的問題

發(fā)布時間:2021-08-17 13:41:32 來源:億速云 閱讀:100 作者:chen 欄目:編程語言

本篇內(nèi)容主要講解“怎么解決PHP生成的XML以FLASH獲取為亂碼的問題”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么解決PHP生成的XML以FLASH獲取為亂碼的問題”吧!

  PHP生成的XML以FLASH獲取為亂碼怎樣解決

  1.確信XML絕對沒有問題的情況:

  首先,flash讀取xml出現(xiàn)亂碼涉及到System.useCodepage這個靜態(tài)屬性屬性

  官方描述:“ABooleanvaluethattellsFlashPlayerwhichcodepagetousetointerpretexternaltextfiles.”默認為false。

  倘若我們使用UTF8編碼的外部文本文件,cit.cn都不用管它,使用非UTF8編碼文本文件且文本中出現(xiàn)中文字符的話,則需要設(shè)置其為true方能讓flash讀出字符不亂碼。

  AS3中可先importflash.system.System;然后設(shè)置System.useCodePage=true;

  2.希望PHP生成UTF-8編碼的XML:

  要想在XML中存在中文字符,最好使用UTF-8編碼。在使用DOM創(chuàng)建XML前聲明為$dom_XML=newDomDocument(’1.0′,’UTF-8′);第二個參數(shù)對應(yīng)XML文檔聲明部分的encoding值。但是注意:這僅僅是聲明的編碼,最后使用$dom_XML->saveXML();實際生成的xml文件卻是和PHP腳本源文件編碼格式相同,即“你的PHP是什么編碼,生成的文件即什么編碼?!?/p>

  PHP生成的XML以FLASH獲取為亂碼怎樣解決

  3.XML文件聲明編碼為UTF-8,flash中無論useCodepage設(shè)為何值讀取都還是亂碼

  經(jīng)常會遇到這種情況,通常是因為:雖然聲明部分是UTF-8,但文件本身卻不是UTF-8的(我自己就是ANSI編碼的,汗)。

  那將會導(dǎo)致一個嚴重的問題:Firefox瀏覽器可以正常解釋XML,但IE(包括TT等IE內(nèi)核瀏覽器)卻提示存在錯誤的字符,F(xiàn)lash也顯示亂碼!

  這種情況處理方法有二:

  把XML聲明部分改成非UTF-8的,比如GB2312,然后設(shè)置FLASH的useCodepage=true;

  把XML用記事本打開,使用“另存為”命令保存為UTF-8的即可

  也就是讓編碼聲明與文件本身編碼匹配,不能名不符實。

  4.PHP源文件不是UTF8編碼的,要怎么生成讓FLASH支持中文字符的XML呢?也就是我遇到的情況:

  PHP是ANSI保存的,使用DOM生成的XML自然也是ANSI的,cit.cn這個編碼的XML文件中若含有中文字符,即使聲明編碼為UTF-8,也無法被正確讀取。

  在這個前提下,要想FLASH正確讀取XML不出現(xiàn)亂碼,就必須設(shè)置encoding為GB2312。

  而PHP的DOM居然不能用GB2312寫中文字符(不解,請達人指點迷津)?如果newDomDocument(’1.0′,’GB2312′);則在保存XML時會出錯:“outputconversionfailedduetoconverror,bytes0xCE0xD20×5D0×5D”之類的。也就是說我這個ANSI的PHP只能生成聲明為UTF-8而實際是ANSI的XML文件,這種文件當然FLASH讀出來亂碼(參照第3條)。

到此,相信大家對“怎么解決PHP生成的XML以FLASH獲取為亂碼的問題”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI