iis
首先說明,此日誌不是技術型日誌,純屬個人感情發泄!
遇到 Flash+asp 亂碼的朋友必看!
從FPV v2開始,Flash+asp亂碼的問題一直解決不了,所有可能的方法都試過,最後調試為在標準的 2000 或 2003 伺服器下不會亂碼。但個人的xp下的iis亂碼,始終無法解決,並且是時好時壞。
從一開始懷疑的原因到現在,疑點有下(個人認為):
1.ASP輸出的utf-8有問題?
加了 <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> ,測試了一遍,自己的IIS(xp)正常,狂歡喜一陣,當在按一下讀取按鈕時。。。可怕的事情發生了,居然亂碼了,到底是為什嗎??然後把asp檔案另存新檔 unicode 格式。。。再運行,顯示讀取不了檔案,IE裡開啟,知道asp不能用unicode,記事本另存新檔裡 編碼 那有四個,兩個帶unicode的,一個utf-8,一個系統預設編碼,根據做初中英語選擇題學的排除法,肯定是utf-8,於是存了這個。再測試,行了!。。。帶著恐慌按下去。。。哎。。又亂碼了,為什麼按第二次就亂碼拉?難道是flash問題?(請看下一疑點)
2.Flash的問題?
經過上面的測試,決定把 System.useCodepage 弄為 true ,再測試,更糟,開始就亂碼。這沒辦法啦,但肯定不能再重複上面的,因為已經知道上面的肯定是錯誤的(結果不是我想要的),只能在弄 System.useCodepage=true 的情況下改一下asp編碼,去掉了 <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> ,測試正常,再按。。也正常,這次真的高興了。。高興之餘又想。。。也不對阿,我當初就是想要unicode的,這回不是只支援本地編碼拉?於是測試韓文寫入,哎。。又失望了,證明也不行,再測試把 <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> 去掉,另存asp格式為utf-8,這次更更糟,存進去的根本不是東西。。一堆不是亂碼的亂碼 像這樣:鍩冨厠鏂?xml,MD 我急了,咋就搞不定呢!??為啥?點解阿,點解。。(請再往下看)
3.最終懷疑是。。。(請詳細看下面)
我發狂了,我生氣了,我想把電腦砸了,我想問為什麼要有編碼這東西,都用統一的不就行啦,你NND flash,人家IE好好的,到你這就出問題,你NND一開始為什麼不想想有這個問題,太氣人了,最後狂測試,在以下 去掉<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> 和 另存asp為utf-8 還有 System.useCodepage=true 的三種中組合來組合去,最後弄出個結果,怎麼改這三樣東西都不行了,要麼是讀到亂碼,要麼是存進去亂碼,要麼是不支援其他語言文字,這下我真的快瘋了,最後再弄弄,IIS瀏覽asp提示串連人數過多。。TMD M$,IIS就我一個人在這看。。你串連什麼多阿。。這時,我想把電腦砸了。想我為啥要幹這行。
IIS不行了,只能在空間上做實驗拉,把開始的傳上去,一試。。奇蹟出現了! 居然行了,讀也行了,寫也行了,資料庫也正常,再看看,難道是我眼花了,用的組合是: asp寫上<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> + flash裡System.useCodepage=false + asp檔案另存新檔utf-8 。我不知改高興好還是怎麼好。。。此時發現是系統問題,伺服器是用2000系統,我的是xp sp2,為了驗證此疑點,我做了以下操作:
(此處簡寫)
我把c給format了,去電腦城4塊錢買了一塊 2003+2000sp4 的安裝碟,開始裝系統,開始是2000,裝好後測試,正常再不能的正常。
再換2003,也沒事兒。。看來真是系統問題?
(寫到此處,此問題已經困擾了我兩三天,要不是iis不能瀏覽,可能還要久)
小結
此後又進行了N多測試(比上面還要多),得出以下結論:
要想 Flash+ASP+ACCESS 支援多語言正常的話,必須
1.作業系統不能是 windows XP
2.asp必須為utf-8格式,包括輸出和檔案本身
3.Flash內不要寫 System.useCodepage=true
這樣做出來的程式如果放在網站上肯定沒問題,因為伺服器不可能用xp做系統,要麼2000要麼2003。從去年遇到這個問題,到現在一直都在找方法解決,最後發現,解決不了,xp下的iis怎麼測試都是有問題,而2000/2003下什麼問題都沒有,至於其中內部原因,也沒心思去調查了。
共用出來給大家,別誤入歧途阿,要做FLASH+ASP+ACCESS項目,千萬別用xp系統作測試,否則後果可是不容易解決的,所有此類項目,不用相容XP!