最近在工作上遇到的小問題, 因為客戶端系統長久下來都是使用big5
所以案子自然也跟著使用big5
在flash裡要使用使用者端的預設編碼只要加入
System.useCodePage = true;
然後外載的筆記本存成預設的ANSI格式,
就可以正常的載入中文字
在FP9之前, 都是正常
但換到FP10後, 載入後就會變亂碼
一模一樣的程式碼, 只要更改發怖的FP版本, 結果就不同, 怪。
以下為測試用的程式碼
在FlexSDK3.5 , FlexSDK4.0 FlashCS5下測試, 只要是發怖成FP10就會是亂碼
發怖成FP9就正常,
決解辦法目前是這樣做。
把_urlLdr.dataFormat = URLLoaderDataFormat.VARIABLES;拿掉
這樣載入時就是正常的, 然後再自已把變數重組,
如果有更好的方法或是原因,還請多多指教。感謝大家
解方出現了喔,護參考Ticore這篇教學
http://ticore.blogspot.com/2010/08/fix-swf10-urldecoding-bug.html
所以案子自然也跟著使用big5
在flash裡要使用使用者端的預設編碼只要加入
System.useCodePage = true;
然後外載的筆記本存成預設的ANSI格式,
就可以正常的載入中文字
在FP9之前, 都是正常
但換到FP10後, 載入後就會變亂碼
一模一樣的程式碼, 只要更改發怖的FP版本, 結果就不同, 怪。
以下為測試用的程式碼
package { import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; import flash.system.System; public class LoadTXTDemo extends Sprite{ public function LoadTXTDemo() { System.useCodePage = true; var _urlLdr:URLLoader = new URLLoader(); _urlLdr.dataFormat = URLLoaderDataFormat.VARIABLES;//問題是出在這行 _urlLdr.addEventListener(Event.COMPLETE , _ldrCompleteHandler); _urlLdr.load(new URLRequest("txt.txt")) } private function _ldrCompleteHandler(e:Event):void { trace(e.currentTarget.data.name); } } }而txt.txt的記事本檔, 也只存了一段文字:name=奶綠茶
在FlexSDK3.5 , FlexSDK4.0 FlashCS5下測試, 只要是發怖成FP10就會是亂碼
發怖成FP9就正常,
決解辦法目前是這樣做。
把_urlLdr.dataFormat = URLLoaderDataFormat.VARIABLES;拿掉
這樣載入時就是正常的, 然後再自已把變數重組,
如果有更好的方法或是原因,還請多多指教。感謝大家
解方出現了喔,護參考Ticore這篇教學
http://ticore.blogspot.com/2010/08/fix-swf10-urldecoding-bug.html
留言
假如資料是 var=中文
Big5 編碼為 var=%A4%A4%A4%E5
UTF-8 編碼為 var=%E4%B8%AD%E6%96%87
就剛好遇到一定要用BIG5的案子
還是乖乖轉碼或是用TEXT載入後自已解悉吧