?? 解決wap中文問題,如此簡單.txt
字號:
作者:qq
email: qqnethome@163.net
日期:00-5-29 下午 03:36:53
解決WAP中文問題,如此簡單
為什么你的WML網頁在某些移動終端上顯示起來亂七八糟?尤其是中文?備受困擾的開發者們發現,有些網站上下載下來的中文界面上包含一些諸如"天下火力"之類的東西,中文問題隨之解決。但是,這些東西從何而來?還有沒有更簡單的方式?本文將解答這些問題。
說來話長,記得有人在wapchina論壇上提出了一個問題:“WML和XML是什么關系?”。WML是XML的一種應用,而XML的缺省編碼是UTF-8,也就是Unicode的8位編碼方式。如果不特殊說明,那么XML將認為你采用的是UTF-8的編碼方式。這就造成了一個問題,我們通常使用GB2312編碼方式,幾乎所有的文檔內容都采用了GB2312方式,數據庫中也不例外。而Unicode和GB2312的編碼有很大的不同,可以說根本不一樣,這是造成亂碼的原因。
為什么UTF-8在XML中有特殊的地位?這本來不是本文要討論的問題,但這個問題關系很大。在大罵XML制造者們不關心中國國情之后,我希望大家能理解這一點,任何編碼方式包括什么日文,韓文,希臘文,阿拉伯文等都能輕松轉換成Unicode,你可以在同一段文檔中加入N種語言。雖然現有的應用軟件很少采用Unicode,但Windows NT的內核卻采用Unicode來處理字符。Unicode方式有兩個吸引人的個性:獨立且寬容(真希望每個MM都Unicode)。
如何解決這些問題,現在主要有以下的幾種方法:
方法一:直接采用UTF-8編碼
方法二:直接采用GB2312編碼
方法三:采用字符轉換的方式
方法四:配置你的應用服務直接輸出UTF-8編碼(適用于IIS)
下面具體來講一下這幾種方法:
方法一:直接采用UTF-8編碼
這種方法無需多講。如果你的內容可以輕易轉換到UTF-8編碼還需要什么呢?
壞處:需要對你的服務內容全面的轉換,而且與現有的大多數應用不兼容。
方法二:直接采用GB2312編碼
也很簡單,在你的編碼聲明時,標注采用GB2312編碼方式,具體做法如下,
壞處:有些終端不支持GB2312編碼,仍然會有亂碼。
方法三:采用字符轉換的方式
就如本文開頭講到的,“天下火力”轉換成中文就是“天下火力”。她的思想是用ASCII字符表現更大字符集中的字符。比如你要展現希臘文的小寫的alpha。alpha在Unicode的編碼中是945,16進制就是3B1,于是你寫下 “α”或者“α” 顯示的就是小寫的alpha α 。你只需要知道漢字的Unicode編碼,將其轉換成“&#xXXXX;”的形式。你只要用ASCII編碼方式就行了,任何平臺都能處理,而且HTML也支持。本文中藍色的天下火力就是用這種方式寫的。如果你看不到,表示你的瀏覽器不支持這種方式。
壞處:增加了文件長度,使得帶寬本來還不高的無限互連網更慢;不能直觀的看到中文,萬一手一抖后果不堪設想。
方法四:配置你的應用服務直接輸出UTF-8編碼(適用于IIS)
本來我在努力尋找簡化第三種方式的方法,看了幾個網友的提的要求之后,我想一定有更簡單的方式,甚至不需要我做什么轉換程序。于是在一個晴朗的天氣里--五一勞動節,努力的勞動終于有了回報。我發現IIS的Response Object有一個屬性CharSet,按微軟的說法只要這么做就行:
壞處:這種方法,只適用于Windows NT下IIS的ASP編程。其他的平臺和Web Server有沒有如此簡單的方式,如果知道了一定要告訴我,對了應該是“求您通知我一聲兒,我將上門領取,OK?別忘了”。
此文引自別處。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -