1.確信XML絕對(duì)沒(méi)有問(wèn)題的情況: 首先,flash讀取xml出現(xiàn)亂碼涉及到System.useCodepage這個(gè)靜態(tài)屬性屬性 官方描述:“A Bool " /> 国产乱码精品一区二区三区四区 ,久久久久一本一区二区青青蜜月,最近中文字幕一区二区三区

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

PHP 生成的XML以FLASH獲取為亂碼終極解決

經(jīng)過(guò)探索最終解決。記錄之,順便也記錄了通用解決方案。如果你也遇到XML<->FLASH亂碼情況,可以速查:

1.確信XML絕對(duì)沒(méi)有問(wèn)題的情況:
首先,flash讀取xml出現(xiàn)亂碼涉及到System.useCodepage這個(gè)靜態(tài)屬性屬性
官方描述:“A Boolean value that tells Flash Player which code page to use to interpret external text files.”默認(rèn)為false。
倘若我們使用UTF8編碼的外部文本文件,php100.com 都不用管它,使用非UTF8編碼文本文件且文本中出現(xiàn)中文字符的話,則需要設(shè)置其為true方能讓flash讀出字符不亂碼。
AS3中可先import flash.system.System;然后設(shè)置System.useCodePage=true;

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

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)重的問(wè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用記事本打開(kāi),使用“另存為”命令保存為UTF-8的即可
也就是讓編碼聲明與文件本身編碼匹配,不能名不符實(shí)。

4.php源文件不是UTF8編碼的,要怎么生成讓FLASH支持中文字符的XML呢?也就是我遇到的情況:
php是ANSI保存的,使用DOM生成的XML自然也是ANSI的,php100.com 這個(gè)編碼的XML文件中若含有中文字符,即使聲明編碼為UTF-8,也無(wú)法被正確讀取。
在這個(gè)前提下,要想FLASH正確讀取XML不出現(xiàn)亂碼,就必須設(shè)置encoding為GB2312。
php的DOM居然不能用GB2312寫(xiě)中文字符(不解,請(qǐng)達(dá)人指點(diǎn)迷津)?如果new DomDocument('1.0′,'GB2312′);則在保存XML時(shí)會(huì)出錯(cuò):“output conversion failed due to conv error, bytes 0xCE 0xD2 0×5D 0×5D”之類的。也就是說(shuō)我這個(gè)ANSI的php只能生成聲明為UTF-8而實(shí)際是ANSI的XML文件,這種文件當(dāng)然FLASH讀出來(lái)亂碼(參照第3條)。

我的解決法:
php用UTF-8的聲明生成了XML后,加了一步操作:打開(kāi)XML文件改寫(xiě)頭部聲明把UTF-8替換為GB2312。嘿嘿,F(xiàn)LASH,IE,FF都不出錯(cuò)了!

php技術(shù)PHP 生成的XML以FLASH獲取為亂碼終極解決,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 嵊泗县| 湟中县| 定南县| 青阳县| 拉孜县| 徐州市| 祥云县| 抚顺县| 嘉定区| 绩溪县| 静乐县| 利辛县| 公主岭市| 凤庆县| 宁陵县| 容城县| 云林县| 千阳县| 如东县| 托克逊县| 鸡泽县| 三门峡市| 辽宁省| 万全县| 鸡泽县| 平塘县| 水富县| 乌什县| 吉林省| 鸡东县| 武乡县| 阜康市| 南投县| 达孜县| 亳州市| 贵阳市| 襄垣县| 县级市| 星子县| 什邡市| 百色市|