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