Utf-8和Gb2312亂碼問題的終結(jié)研究好多天了,也試過好多辦法了,總結(jié)出目前發(fā)現(xiàn)最好的方法: 先說一下基本的東西: <%@ codepage=936%>簡體中文 <%@ codepage=950%>繁體中文 <%@ codepage=65001%>UTF-8 codepage指定了IIS按什么編碼讀取傳遞過來的串串(表單提交,地址欄傳遞等)。 出亂碼的原因也就是網(wǎng)站要整合的時(shí)候模塊編碼不一樣引起的。 就像我的博客一樣,整合的時(shí)候都會(huì)出這個(gè)問題,因?yàn)锽LOG是Utf-8的, 近來很多網(wǎng)友都在為這個(gè)問題咨詢,我嘗試了很多種方法。 最方便的方法如下: 不要轉(zhuǎn)換任何模塊網(wǎng)頁的編碼該utf-8的還是utf-8,該Gb22312的還是Gb2312 在Utf-8模塊的包文件(如conn.asp,但是要注意conn.asp必須是在第一行調(diào)用)最前面加上 <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <%Session.CodePage=65001%> 在GB2312模塊的包文件最前面加上 <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <%Session.CodePage=936%> 其他編碼的類推。再出問題,我也幫你了了,我現(xiàn)在是都沒問題了^^ 小議:UTF8還是GB2312 早些年上網(wǎng)的朋友都知道,NS或IE瀏覽器早期的版本并不支持多國語言的瀏覽,如果想瀏覽繁體中文、日文等外文網(wǎng)站還需要一個(gè)如“中文之星”或“四通立方”的外掛軟件,后來瀏覽器逐步發(fā)展升級(jí),到目前為止,幾乎所有瀏覽器都支持多國語言字符,可以瀏覽任意國家、語言的網(wǎng)站。Blog的出現(xiàn),特別是Trackback的出現(xiàn),使網(wǎng)絡(luò)國際化的行為由被動(dòng)的瀏覽信息向主動(dòng)式的交互信息過渡,然而新的語言障礙問題又出現(xiàn)了... 問題主要出在Blog的Trackback(引用)、Ping(通告)、Notification(通知書)等交互具有的功能上。以前我們?cè)诶斫夂蛻?yīng)用網(wǎng)絡(luò)上的交互主要局限在C-S范圍之內(nèi),也就是客戶(個(gè)人)與服務(wù)器(網(wǎng)站)之間的信息交互,例如:在網(wǎng)絡(luò)上發(fā)布一篇文章或回復(fù)一個(gè)論壇帖子,一般來講這樣的交互很少會(huì)出現(xiàn)語言不兼容的問題。然而Blog中的Trackback等的交互方式不只是C-S的,它還是S-S(Blog網(wǎng)站之間)的,甚至是多重的,例如在發(fā)布一篇文章的時(shí)候,你可以同時(shí)選擇讓它同時(shí)發(fā)布在一個(gè)或多個(gè)不同的Blog上,或者給指定的人發(fā)出更新通知,也可以讓更多的人預(yù)訂、收錄你的RSS內(nèi)容更新信息。Blog的交互方式更多、更靈活,當(dāng)然,這種交互并非沒有限制,語言編碼是一個(gè)很大障礙,如果你的Blog系統(tǒng)編碼是中文簡體的GB2312,那么所有Trackback、Ping的交互對(duì)象就只能限于國內(nèi)采用GB2312編碼的用戶,你的Blog也就無法與臺(tái)灣、日本等采用非GB2312編碼的用戶實(shí)現(xiàn)交互。 比較好的解決辦法是采用UTF-8編碼,雖然采用UTF-8編碼回多占用一些空間(一個(gè)漢字需3個(gè)字節(jié)),但國際化問題總算解決了,UTF-8兼容GB2312、BIG5、EUC-JP等多種國家的語言編碼,經(jīng)測試,采用UTF-8編碼的Blog之間的各種交互、通訊沒有任何問題。事實(shí)上90%以上的臺(tái)灣Blog都已經(jīng)舍棄了BIG5,而采用UTF-8的編碼方式,而大陸的Blog幾乎還都是GB2312編碼,看來臺(tái)灣在國際化方面還是相當(dāng)領(lǐng)先的。 前幾日,我將自己的Blog從GB2312編碼轉(zhuǎn)為了UTF-8編碼,Trackback和Ping了幾個(gè)臺(tái)灣朋友的Blog,沒有發(fā)現(xiàn)問題??磥?#8220;國際化”的問題已經(jīng)解決了,但隨之而來有出現(xiàn)了新的問題,我的Blog與國內(nèi)GB2312編碼的Blog又無法交互了,當(dāng)然這是必然的。我Ping到online-edu. org(網(wǎng)站采用GB2312編碼)上的信息都成了亂碼。 我想問題到此,已經(jīng)不是技術(shù)層面的了。如果你的站點(diǎn)或Blog有國際化交流的需求,可通過采用UTF-8編碼的方式來解決,如果沒有這個(gè)需求,采用GB2312也無大礙。在用戶看來都是一樣的,編碼只是后臺(tái)的東西。不過我希望Blogger們最好都采用UTF-8編碼,因?yàn)槟愕腂log有了Trackback和Ping,它們可是持有國際航班的機(jī)票,如果只在本國轉(zhuǎn)悠,確實(shí)很浪費(fèi)。 關(guān)于TrackBack TrackBack最早是Movable Type上的一個(gè)小功能??梢哉f就是這個(gè)小功能在blog界卻掀起了一場革命。 TrackBack為將全世界無數(shù)個(gè)blog連接起來的功能。例如,當(dāng)你讀了某個(gè)網(wǎng)站的文章,想對(duì)此寫下自己的感想。這個(gè)時(shí)候利用網(wǎng)站準(zhǔn)備的討論功能進(jìn)行投稿是很最常見的做法。但這樣只是把自己的評(píng)論意見寫下來向別人的網(wǎng)站投稿,而你自己手里卻什么也沒留下。 TrackBack則與之有很大的區(qū)別??梢园言u(píng)論寫到自己網(wǎng)站上。然后向刊載原始文章的服務(wù)器發(fā)送該網(wǎng)頁的URL及標(biāo)題、部分正文、網(wǎng)站名稱等信息(注)。盡管這一過程只是稱之為“發(fā)送TrackBack Ping”,但通過這種辦法,在原始文章的地方就留下了你的評(píng)論的URL、標(biāo)題等部分信息。當(dāng)然別人也可以向原始文章發(fā)送TrackBack Ping,所以在原始文章中就將包括你的TrackBack Ping在內(nèi)的所有評(píng)論都記錄了下來。 此外,如果你在自己網(wǎng)站上也設(shè)置了TrackBack Ping功能的話,那么誰都可以通過TrackBack Ping來發(fā)表針對(duì)你的意見了。這樣,多家網(wǎng)站就通過相關(guān)話題而聯(lián)接起來。各種評(píng)論在因特網(wǎng)上就像網(wǎng)眼一樣聯(lián)接起來。這樣就創(chuàng)造出了與日記網(wǎng)站完全不同的文化。 注:發(fā)送地址采用原始文章指定的URL,這一URL就稱為“TrackBack Ping URL”。最后的“128”為原始文章的專用數(shù)字,稱為“TrackBack ID”。另外,TrackBack的技術(shù)標(biāo)準(zhǔn)刊登在“LowLife.jp”的blog網(wǎng)站上。 |
|