Re: [問題] 用flash抓php的文字

看板Flash作者 (ROSE)時間17年前 (2006/10/26 00:19), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《aquarianboy (ED)》之銘言: : ※ 引述《Rose7 (ROSE)》之銘言: : : 其實這個問題也搞不懂是要去flash板問還是這邊問 : : 我用flash去抓php的文字 可是照我這樣的寫法顯示不出來呢 : : 這是php檔的內容 : : -------------------------------------- : : <? : : $file = fopen("test.txt" , "r") ; : : $data = fread($file , filesize("test.txt")) ; : : fclose($file) ; : : echo $data . "二"; : : ?> : : ---------------------------------------- : : test.txt的內容是 : : ------------ : : a=一 : : ------------ : : 然後flash的程式碼是 : : var Online = new LoadVars(); : : Online.load("test.php"); : : Online.onLoad = function(success:Boolean) { : : _root.text = Online.a ; : : } : : 兩個文件檔都有存utf8格式 : : 可是flash文字欄顯示的是undefined : : 但如果我把php這一行 echo $data . "二"; 改成 : : echo "a=一" . "二"; : : flash就可以顯示出來 一二 : : 這是為什麼呢? : unicode的東西常會遇到某個關卡沒打通就會出現問題 : 從web server的設定、文字檔的格式,到flash都有編碼的相關設定 : 有的預設使用unicode,有的不是 :) : 如果第二種方法flash可以顯示出文字,但第一種不行 : 有可能是: : 1. php讀取文字檔發生錯誤(可能是找不到檔案、檔案大小寫或是權限問題) : 2. php讀到文字但印不出來(可能是編碼問題(我猜的)) : 有沒網址可以參考呢? : 可能可以更快找到問題 :) 測試了一下 發現似乎是因為utf8格式的前三個字元的關係 剛剛把php檔用ANSI和UTF8兩種格式各跑一次 兩邊都 echo $data,然後執行php並將瀏覽器內容存成txt 再用Winhex開啟來看,utf8的前面比ANSI的多了EF BB BF 所以flash在讀mime格式時,才會發生讀不到 a 目前解決方法是將php存成ansi 然後若有從php中產生的中文 則要用函式轉成utf8才能給flash讀正確 以上是自己推論的 不知道是不是正確 但問題有確實解決了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.230.30.129

10/26 01:43, , 1F
那叫BOM 記事本存的都會有這東西 這相當於Unicode的U+FEFF
10/26 01:43, 1F
文章代碼(AID): #15Fuw5MR (Flash)
文章代碼(AID): #15Fuw5MR (Flash)