亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASP > 正文

網站開發防止中文亂碼需要了解的codepage的重要性小結

2024-05-04 11:09:38
字體:
來源:轉載
供稿:網友
這幾天研究UTF-8編碼,太暈了,把我的看法和各位討論討論。歡迎來批啊。以下都是我的想法,哪里有不對的請不吝賜教,幫忙指出來。

相關的題外話:

一、操作系統
window系統內部都是unicode的。文件夾名,文件名等都是unicode的,任何語言系統下都能正常顯示。

二、輸入法:
微軟拼音輸出的是Unicode的,智能ABC輸出是簡體中文的(所以智能ABC在非簡體中文系統根本不能用,只能打英文)。

三、網頁的textarea
網頁的textarea是用unicode顯示的。所以往里打什么字都能顯示。而一些flash做的輸入框就不行了。

四、Access2000
access里面保存的數據是unicode的,在任何語言系統下都能顯示。
如果數據視圖查看有些字符不正常,那是因為顯示所用的字體不是Unicode字體,
換用Arial Unicode MS 字體就能全部顯示了。(access幫助,搜索,輸入unicode,有說明)

五、Word
word里的繁簡轉換,簡體轉換到繁體后,內碼仍是簡體中文的,其實只是簡體中的繁體字。

六、ASP內部是Unicode的,所有文本都是Unicode存儲的。需要時轉換到指定字符集。

首先說下結論:
<%@ codepage=936%>簡體中文
<%@ codepage=950%>繁體中文
<%@ codepage=65001%>UTF-8

codepage指定了IIS按什么編碼讀取傳遞過來的串串(表單提交,地址欄傳遞等)。

也指定了所有文本變量從Unicode轉換到的編碼,
也就指定了從數據庫取出的數據從Unicode轉換到的編碼。(注意這個,很重要。)

關鍵字:
讀取:一個串串,按簡體讀取是一些字,按繁體讀取是一些字,串串本身編碼沒有變。

轉換:系統主動的轉換,比如從Unicode的“化”字到Big5的“化”字,內碼變成Big5的。如果Big5沒有對應的字,保留Unicode形式(&#xxxx;)

簡體中文:化六個結論
Unicode16進制形式:化六个结论
Unicode10進制形式:化六个结论

下面是我推測出來的編碼轉換的過程:
客戶端:輸入法Unicode--輸入框unicode--從Unicode按charset轉換到對應編碼()--表單發送編碼

服務器端:IIS解開表單編碼--按codepage指定編碼讀取--轉換到對應的Unicode--可以用request("")讀取了--進行一些處理--以Unicode編碼保存到數據庫

服務器端:讀取數據庫的Unicode數據,轉換到codepage指定編碼---生成源代碼--IE按charset讀取顯示。

下面舉例說明:
例一:
假設有三個asp頁面,典型的留言頁面:
1.write.asp 簡單的輸入表單,提交到add.asp。
<META http-equiv="Content-Type" content="text/html; charset=big5">
2.add.asp 接收留言,保存到數據庫
<%@ codepage=936%>
3.read.asp 從數據庫取得留言,顯示。
<%@ codepage=936%> charset=GB2312 或
<%@ codepage=950%> charset=big5

大家可以猜一猜,我在write.asp里用微軟拼音輸入法輸入“化六個討論”。最后在read.asp里會顯示什么樣?
是不是暈了。讓我們從頭分析。

網站開發防止中文亂碼需要了解的codepage的重要性小結

例二:
把例一的add.asp的<%@ codepage=936%>改為<%@ codepage=950%>,又會怎么樣呢?

網站開發防止中文亂碼需要了解的codepage的重要性小結

到這里發現了什么?
1.如果輸入的文字和Charset對應的不同,一轉換,就可能出現Unicode形式的字了。這里就是原因所在。以后整個過程都保留著。
2.Add.asp里codepage決定了保存到數據庫的文字,用的是哪個語言對應的Unicode.如codepage=936,
那么數據庫保存的就是簡體中文的Unicode(數據庫拿回簡體中文系統,一切正常的),
codepage=950保存的就是繁體中文的Unicode.(拿回簡體中文系統,就不對了)。

3.注意一下串串的變化過程:

1)輸入法---CharsetUnicode----指定字符集的映射
2)Charset----表單編碼串串簡單編碼
3)表單解碼上步的逆過程,兩步抵消了。
4)串串à按codepage讀取串串沒變,這步有可能“誤會讀取”
5)轉為對應的Unicode Codepage指定字符集----Unicode映射
6)中間處理,進數據庫無變化,直接以Unicode形式進入
7)按codepage讀取數據庫 Unicode----codepage指定字符集的映射
8)顯示,按Charset指定字符集讀取串串沒變。

以例一說明:

網站開發防止中文亂碼需要了解的codepage的重要性小結

例二:

網站開發防止中文亂碼需要了解的codepage的重要性小結

暈了。現在來用用知識。

案例1。
簡體中文系統下跑的好好的代碼,放到國外空間上,數據庫里亂碼,原有的數據也亂碼。
分析:因為大多數人平時用的都是簡體中文系統,默認的codepage=936,所以平時大家不寫也沒有關系。
但到了國外空間問題就出來了。從數據庫里的Unicode轉換到英文編碼去了,所以數據庫原有的簡體中文轉換到英文后,按GB顯示自然亂碼。
如圖,新輸入的文字顯示正常,但數據庫里保存的是英文的Unicode的。
解決方法:全部加上<%@codepage=936即可%>。
全程只有簡體中文與對應Unicode間的轉換。

網站開發防止中文亂碼需要了解的codepage的重要性小結

案例二:
簡體中文的代碼和數據,想轉為完全的繁體版,該怎么辦?
分析:1。代碼文件編碼全部改為Big5的,文件本身保存編碼選繁體。
2.<%@ codepage=936 %>
3.Charset=big5
4.access版本無所謂,因為access里的數據是Unicode的。
5.好了,代碼可以在純繁體系統下跑了。
6.遺留問題:原有的簡體中文數據讀出會有一些問號。效果同例一的950讀取,big5顯示。因為從簡體中文的Unicode轉換到繁體中文了,有些字繁體中沒有,就會出問號。
7.解決:用一個臨時asp頁,codepage=65001,讀出為簡體中文的Unicode,用一個Unicode->Big5的函數,轉為繁體中文,然后寫回數據庫,應該行了吧?

兩個案例完全是我按照理論推導出來了,未經證實。
有類似經歷的歡迎批評指正。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕v亚洲ⅴv天堂| 欧美xxxwww| 日韩欧美福利视频| 日韩欧美国产成人| 久久91亚洲精品中文字幕| 国产经典一区二区| 亚洲精品日产aⅴ| 高清一区二区三区四区五区| 色yeye香蕉凹凸一区二区av| 亚洲一区免费网站| 中文字幕视频在线免费欧美日韩综合在线看| 伊人久久久久久久久久久久久| 亚洲变态欧美另类捆绑| 日本伊人精品一区二区三区介绍| 热久久99这里有精品| 亚洲色图av在线| 欧洲成人午夜免费大片| 亚洲电影免费观看高清完整版| 亚洲精品日韩欧美| 亚洲第一网站男人都懂| 国产成人精品视频| 亚洲人成亚洲人成在线观看| 国产视频综合在线| 97在线免费视频| 成人黄色免费网站在线观看| 亚洲欧美日韩一区二区三区在线| 欧美性在线视频| 亚洲欧美综合另类中字| 国产91精品高潮白浆喷水| 在线播放精品一区二区三区| 亚洲韩国欧洲国产日产av| 97超级碰碰碰久久久| 亚洲色图15p| 欧美大全免费观看电视剧大泉洋| 久久久精品欧美| 国产精品激情av电影在线观看| 日韩在线视频网站| 91久久精品视频| 国产成人精品在线播放| 少妇高潮久久久久久潘金莲| 欧美人与物videos| 不卡av电影在线观看| 亲子乱一区二区三区电影| 国产精品美女av| 久久成人av网站| 国产亚洲精品va在线观看| 亚洲一区二区少妇| 亚洲欧洲免费视频| 久久青草福利网站| 国产精品自拍小视频| 少妇高潮 亚洲精品| 国产精品美女在线观看| 欧美成人午夜视频| 久久久免费高清电视剧观看| 日韩在线视频网站| 国产免费一区二区三区在线观看| 欧美孕妇孕交黑巨大网站| 精品视频久久久久久| 国产精品视频1区| 亚洲久久久久久久久久| 91免费国产视频| 日韩久久精品电影| 中文字幕av一区中文字幕天堂| 精品久久久久久久大神国产| 国产视频观看一区| 亚洲国产精品电影在线观看| 疯狂做受xxxx欧美肥白少妇| 日本韩国在线不卡| 精品国产电影一区| 国产精品久久久久999| 久久人人爽人人| 欧美激情欧美激情| 92看片淫黄大片看国产片| 欧美色播在线播放| 亚洲社区在线观看| 成人黄色av网| 国产成人激情小视频| 色先锋资源久久综合5566| 69av在线视频| 亚洲欧美另类人妖| 欧美日韩国产成人在线| 亚洲自拍高清视频网站| 北条麻妃99精品青青久久| 亚洲天堂成人在线| 日韩av理论片| 欧美成人精品一区| 国产精品美女av| 国产欧美日韩精品在线观看| 久久久av网站| 国产91|九色| 欧亚精品在线观看| 国产综合久久久久| 亚洲跨种族黑人xxx| 91精品国产精品| 欧美乱大交做爰xxxⅹ性3| 成人网欧美在线视频| 中文字幕一区二区精品| 亚洲精品久久久久久久久久久久| 久久青草精品视频免费观看| 久久久999国产精品| 欧美日韩国产黄| 欧美成年人视频网站| 国产精品久久91| 91久久久国产精品| 亚洲精品美女在线观看播放| 国产精品18久久久久久麻辣| 91精品国产91久久久久久最新| 亚洲a区在线视频| 欧美成人自拍视频| 亚洲美女av在线| 性亚洲最疯狂xxxx高清| 大胆人体色综合| 国产成人精品999| 国产精品第2页| 国产中文日韩欧美| 亚洲精品一区在线观看香蕉| 97久久精品视频| 国产精品电影久久久久电影网| 亚洲a在线播放| 日韩欧美aⅴ综合网站发布| 欧美肥臀大乳一区二区免费视频| 最好看的2019年中文视频| 91精品国产综合久久香蕉最新版| 欧美激情亚洲一区| 久久久久久九九九| 最新91在线视频| 国产精品丝袜高跟| 亚洲欧美日韩精品久久亚洲区| 一区二区三区回区在观看免费视频| 在线播放国产一区中文字幕剧情欧美| 日韩精品在线视频观看| 国产亚洲成av人片在线观看桃| 中国日韩欧美久久久久久久久| 日韩高清电影免费观看完整| 日韩精品视频在线免费观看| 精品国产1区2区| 国模私拍一区二区三区| 91亚洲精品一区二区| 在线观看日韩视频| 亚洲国产欧美日韩精品| 日韩精品视频在线免费观看| 午夜精品一区二区三区在线视| 欧美亚洲国产日本| 国产精品综合不卡av| 亚洲欧美一区二区三区情侣bbw| 久久久999精品| 国产精品av在线| 欧美最近摘花xxxx摘花| 久操成人在线视频| 日韩欧美精品免费在线| 97在线视频免费| 91在线免费网站| 久久久女人电视剧免费播放下载| 日韩激情第一页| 亚洲第一中文字幕| 国产一区二区日韩精品欧美精品| 懂色av一区二区三区| 91久久在线播放| 亚洲自拍高清视频网站| 国产精品久久久久久影视| 久久精彩免费视频| 欧美精品日韩www.p站| 91久久国产综合久久91精品网站| 亚洲精品视频网上网址在线观看|