ASP教程之多言语网页编码教程
asp可以使用微软的activeX使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般这几天研讨UTF-8编码,太晕了,把我的意见和列位会商会商。接待来批啊。以下都是我的设法,那里有不合错误的请不惜见教,协助指出来。
==========================================================
相干的题外话:
1、操纵体系
window体系外部都是unicode的。文件夹名,文件名等都是unicode的,任何言语体系下都能一般显现。
2、输出法:
微软拼音输入的是Unicode的,智能ABC输入是简体中文的(以是智能ABC在非简体中文体系基本不克不及用,只能打英文)。
3、网页的textarea
网页的textarea是用unicode显现的。以是往里打甚么字都能显现。而一些flash做的输出框就不可了。
4、Access2000
access内里保留的数据是unicode的,在任何言语体系下都能显现。
假如数据视图检察有些字符不一般,那是由于显现所用的字体不是Unicode字体,
换用ArialUnicodeMS字体就可以全体显现了。(access匡助,搜刮,输出unicode,有申明)
5、Word
word里的繁简转换,简体转换到繁体后,内码还是简体中文的,实在只是简体中的繁体字。
6、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。
<METAhttp-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里会显现甚么样?
是否是晕了。让我们重新剖析。
例二:
把例一的add.asp的<%@codepage=936%>改成<%@codepage=950%>,又会怎样呢?
到这里发明了甚么?
1.假如输出的笔墨和Charset对应的分歧,一转换,便可能呈现Unicode情势的字了。这里就是缘故原由地点。今后全部历程都保存着。
2.Add.asp里codepage决意了保留到数据库的笔墨,用的是哪一个言语对应的Unicode.如codepage=936,
那末数据库保留的就是简体中文的Unicode(数据库拿回简体中文体系,统统一般的),
codepage=950保留的就是繁体中文的Unicode.(拿回简体中文体系,就不合错误了)。
3.注重一下串串的变更历程:
--------------------------------------------------------------------
1)输出法---CharsetUnicode----指定字符集的映照
2)Charset----表单编码串串复杂编码
3)表单解码上步的逆历程,两步抵消了。
4)串串à按codepage读取串串没变,这步有大概“误解读取”
5)转为对应的UnicodeCodepage指定字符集----Unicode映照
6)两头处置,进数据库无变更,间接以Unicode情势进进
7)
8)按codepage读取数据库Unicode----codepage指定字符集的映照
9)显现,按Charset指定字符集读取串串没变。
-------------------------------------------------------------------------------
以例一申明:
例二:
=============================================
晕了。如今来用用常识。
案例1。
简体中文体系下跑的好好的代码,放到外洋空间上,数据库里乱码,原本的数据也乱码。
剖析:由于年夜多半人平常用的都是简体中文体系,默许的codepage=936,以是平常人人不写也没有干系。
但到了外洋空间成绩就出来了。从数据库里的Unicode转换到英文编码往了,以是数据库原本的简体中文转换到英文后,按GB显现天然乱码。
如图,新输出的笔墨显现一般,但数据库里保留的是英文的Unicode的。
办理办法:全体加上<%@codepage=936便可%>。
全程只要简体中文与对应Unicode间的转换。
案例二:
简体中文的代码和数据,想转为完整的繁体版,该怎样办?
剖析:1。代码文件编码全体改成Big5的,文件自己保留编码选繁体。
2.<%@codepage=950%>
3.Charset=big5
4.access版本无所谓,由于access里的数据是Unicode的。
5.好了,代码能够在纯繁系统统下跑了。
6.遗留成绩:原本的简体中文数据读出会有一些问号。效果同例一的950读取,big5显现。由于从简体中文的Unicode转换到繁体中文了,有些字繁体中没有,就会出问号。
7.办理:用一个一时asp页,codepage=65001,读出为简体中文的Unicode,用一个Unicode->Big5的函数,转为繁体中文,然后写回数据库,应当行了吧?
案例三:
简体中文的代码和数据库,想转为完整的UTF-8版,怎样办?
剖析:1。代码文件编码全体改成UTF-8的,文件自己保留编码选UTF8。
2.<%@codepage=65001%>
3.Charset=UTF-8
4.access版本无所谓,由于access里的数据是Unicode的。
5.OK,没有任何遗留成绩。原本的简体中文也会一般显现。由于数据库里是Unicode的,按Unicode读出没有任何转换。天然不会乱码。看来转到UTF-8仍是很复杂的。只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天 以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。 Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件 学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件) 他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。 如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助: 不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
页:
[1]