Flash跟後台編碼解決新方案

2021-04-19 20:06:44 字數 2043 閱讀 4892

在flash mx的時候開始,就經常有人問為什麼flash載入的中文會是亂碼?

後來大家都用了system.usecodepage=true;去解決這個問題。

可能大家都已經習慣了在flash 5或以前,flash完全沒有理會編碼時候吧。

大家都可能覺得,我在flash5的時候可以很容易的載入外部文字,可以很容易的跟php, asp等等的後台程式作資訊互動。但是到了flash mx的時候,同樣的方法卻出現了亂碼。一定要在前面加上system.usecodepage=true;才可以解決問題。大家可能都會覺得這是flash的問題,覺得flash mx的中文支援能力差了。但是,事實卻剛剛相反。flash mx, flash 2004這些版本對編碼的支援覺得是比flash5好的。(廢話,flash5都沒有任何編碼的問題)大家可能對我的話有所懷疑,這不要緊,下面就讓我說明一下吧。

大家都知道我們國家就已經有兩種不同的編碼了,分別是香港,台灣的big5和我們內地的gb2312。在flash 5或以前,flash完全沒有理會編碼問題,所有在dynamic/input textfield顯示的中文字,flash是根據瀏覽者系統預設編碼去顯示。香港一般用big5去編碼文字,而大部分人都是用正體中文windows,所以一拍即合,可以顯示到中文。對於英文或簡體中文windows瀏覽者,他們就無法顯示到dynamic/input textfield上的big5編碼正體中文。以前的英文windows使用者,經常要靠外掛程式中文程式,例如:南極星或richwin看中文網頁,可惜這類軟體對flash裡的中文字無法起作用,依舊是亂碼。

但是從flash mx開始,flash就開始支援unicode編碼。

unicode

loadvariablesnum("text.txt", 0);

text.txt這檔案裡的中文用big5編碼,flash player 6則用unicode,結果當然是顯示亂碼。

解決方法有兩個:一、強迫flash使用「flash 5原來編碼方法」,在frame 1加入指令:

system.usecodepage = true;

如果整個swf都是使用「flash 5原來編碼方法」,就只需在frame 1開始加一次便可。

服務端程式設計:

1.php/coldfusion的開發者

請把你的php/coldfusion存為utf-8編碼。

文字:檔案->另存為->編碼->utf-8

dw2k4:file->new->preference...->default encoding->utf-8

2.asp的開發者

請把你的asp存為utf-8編碼。

文字:檔案->另存為->編碼->utf-8

dw2k4:file->new->preference...->default encoding->utf-8

然後在頂上多加

<%@ codepage=65001 %>

就可以了

在flash裡面請別加入

system.usercodepage=true;

加了這指令之後,flash對unicode的檔案將會顯示為亂碼。也就是說,你不能用unicode編碼了。如果不用utf-8編碼,對於gb2312編碼來說,是可以部分相容正體中文和一些日文編碼的, 那是因為gb2312裡面已經包括了這些編碼,即所謂的gbk大字符集。這就讓很多使用system.usercodepage的人覺得只要預設編碼為gb2312,就可以做到解決編碼問題。我在原先做的時候也是這樣誤解的,那是因為我沒有測試別的語言,比如韓文。後來試了韓文之後,發現輸入到資料庫中的文字都變成了%#5234;%#1243;這樣子的亂碼。原來這些特殊語言的編碼在gb2312裡找不到,所以就被轉成了位元組編碼。所以,如果你只是想讓繁體和簡體之間沒有編碼問題,那只需使用gb2312編碼就足夠了,ie會幫你轉換big5到gb2312。而如果要適應更多語言的瀏覽器,那麼,你就必須使用萬國碼unicode。不過值得注意的是, 某些資料庫不支援unicode。比如早些的mysql,現在的mysql已經支援了。這就需要強行轉換編碼,可以使用urlencode編碼,或者base64也行。讀取的時候再反編碼回unicode。還有要注意的地方, 就是flash裡面的文字框字型不能再用宋體了。而是需要用公用字型,比如arial。 因為別的語言並沒有宋體

解決app頻繁更新方案

我們頻繁更新的內容主要包括 1 快速fix bug 2 快速增加新功能 3 快速發布活動 方案 具體實現 1 比如我們的登入頁對應的js是login.js,我們發現了login.js裡面的foo方法邏輯有問題,那我們就再建立乙個login extend.js,裡面重寫了foo方法。2 那這樣的話,增...

最新方案 國外空間亂碼顯示問題的解決

在資料提取頁面的第一行 換成如下 即可 language vbscript codepage 936 1.若是html檔案 htm html 在中加上 2.若是php cgi檔案 php php3 php4 在每個php檔案第一行加上 3.若是asp檔案 asp jsp 下面言歸正傳,說說asp原始...

新入口 新方案 中企動力機械行業解決方案

數位化正以強勁的勢頭影響著傳統企業的發展方向,新的連線方式改變了他們的業務和商業模式,越來越多的傳統企業評估著自身在數位化轉型中的位置,並做出有效的決策來實現真正具有實質價值的轉型,以實現銷售額的增長,同時 解鎖 更多數字時代的新技能。作為it領域數位化運營服務商中企動力在18歲生日之際,推出機械行...