本篇內(nèi)容主要講解“怎么解決PHP生成的XML以FLASH獲取為亂碼的問題”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么解決PHP生成的XML以FLASH獲取為亂碼的問題”吧!
在包河等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),全網(wǎng)整合營(yíng)銷推廣,成都外貿(mào)網(wǎng)站建設(shè),包河網(wǎng)站建設(shè)費(fèi)用合理。PHP生成的XML以FLASH獲取為亂碼怎樣解決
1.確信XML絕對(duì)沒有問題的情況:
首先,flash讀取xml出現(xiàn)亂碼涉及到System.useCodepage這個(gè)靜態(tài)屬性屬性
官方描述:“ABooleanvaluethattellsFlashPlayerwhichcodepagetousetointerpretexternaltextfiles.”默認(rèn)為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′);第二個(gè)參數(shù)對(duì)應(yīng)XML文檔聲明部分的encoding值。但是注意:這僅僅是聲明的編碼,最后使用$dom_XML->saveXML();實(shí)際生成的xml文件卻是和PHP腳本源文件編碼格式相同,即“你的PHP是什么編碼,生成的文件即什么編碼。”
PHP生成的XML以FLASH獲取為亂碼怎樣解決
3.XML文件聲明編碼為UTF-8,flash中無(wú)論useCodepage設(shè)為何值讀取都還是亂碼
經(jīng)常會(huì)遇到這種情況,通常是因?yàn)椋弘m然聲明部分是UTF-8,但文件本身卻不是UTF-8的(我自己就是ANSI編碼的,汗)。
那將會(huì)導(dǎo)致一個(gè)嚴(yán)重的問題:Firefox瀏覽器可以正常解釋XML,但I(xiàn)E(包括TT等IE內(nèi)核瀏覽器)卻提示存在錯(cuò)誤的字符,F(xiàn)lash也顯示亂碼!
這種情況處理方法有二:
把XML聲明部分改成非UTF-8的,比如GB2312,然后設(shè)置FLASH的useCodepage=true;
把XML用記事本打開,使用“另存為”命令保存為UTF-8的即可
也就是讓編碼聲明與文件本身編碼匹配,不能名不符實(shí)。
4.PHP源文件不是UTF8編碼的,要怎么生成讓FLASH支持中文字符的XML呢?也就是我遇到的情況:
PHP是ANSI保存的,使用DOM生成的XML自然也是ANSI的,cit.cn這個(gè)編碼的XML文件中若含有中文字符,即使聲明編碼為UTF-8,也無(wú)法被正確讀取。
在這個(gè)前提下,要想FLASH正確讀取XML不出現(xiàn)亂碼,就必須設(shè)置encoding為GB2312。
而PHP的DOM居然不能用GB2312寫中文字符(不解,請(qǐng)達(dá)人指點(diǎn)迷津)?如果newDomDocument(’1.0′,’GB2312′);則在保存XML時(shí)會(huì)出錯(cuò):“outputconversionfailedduetoconverror,bytes0xCE0xD20×5D0×5D”之類的。也就是說我這個(gè)ANSI的PHP只能生成聲明為UTF-8而實(shí)際是ANSI的XML文件,這種文件當(dāng)然FLASH讀出來亂碼(參照第3條)。
到此,相信大家對(duì)“怎么解決PHP生成的XML以FLASH獲取為亂碼的問題”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!