2009/04/21

ASP UTF-8 乱码解决方法小结



ASP UTF-8 乱码解决方法小结

这里整理下asp页面下出现乱码的问题,好多ajax读取的数据出现乱码的解决方法,asp.net,php等语言的乱码,解决原理都是一样的。

这个是网页编码的问题。中文一般采用的是gb2312这样的话显示中文基本上不会出现乱码。但是有时候我们用的是一种国际上通用的utf-8格式。如果utf-8格式人不是很了解的话是容易出现乱码的。

有许多朋友问过我,为什么在ASP里指定了codepage为65001还经常显示乱码.才子在这里将这个问题详细解释一下,以免很多朋友再走弯路,甚至排斥UTF-8.

asp网页utf8乱码如果你还不知道UTF-8是什么东东,那才子建议你先去搜索一下UTF-8的相关资料吧.

UTF-8编码之所以被越来越多的人接受甚至喜欢,肯定是有道理的,在WEB2.0盛行的今天,在大谈多浏览器兼容的同时,不得不想到字符编码不同所造成的乱码现象同样需要得到很好的处理.....

在N年以前,IE6以下的所有版本,只要没有安装相应的字库,访问相关的页面都是会乱码的,例如,我是IE5 (Windows2000默认) 的版本,在没有安装IE繁体字库的情况下,访问任何繁体页面的网站都是会乱码的,当然前提是该页面采用了BIG5的Charset,而UTF-8作为一种 国际编码就能很好的处理该问题,只要将页面存为UTF-8编码格式,再在页面上将codepage及charset全部定义为utf-8就可以在任何客户 端浏览器中显示出完全正确的内容,完全不会乱码......

好了,才子这里以ASP页面为例,以一个实例来看具体操作吧:

在这才子推荐用Editplus来写代码,才子也专门写过一篇Editplus的使用教程,有兴趣的朋友可以点击这里 去看看.

打开新建一个ASP页面,相信玩ASP的朋友都会留意到,许多下载的源码里,页面最上方一般都有一句:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

前面的language应该不用多说了,vbscript就是ASP默认的脚本语言,其实完全可以不用写,写了好像还会影响页面执行效率,在这里我们先不 讨论这个问题. 后面的codepage就是关键了,目的就是告诉浏览器,此页面是何种编码,936代表是简体中文,而950代表繁体中文,65001就是我们今天说的 UTF-8编码了.我们将936改成65001,整句如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>

再加上输出几个中文字看看能不能正确显示吧.

<%

Response.Write "第一次测试UTF-8页面"

%>

OK,直接点击"保存",执行这个页面看看,如果不出意外,大家可能看到显示出的是 "一尾UTF-8页" 这几个字,中文有乱码的现象,什么原因呢?

OK,请大家再点击最上面的 "文件" 菜单,选择"另存为",最下面一行有个编码,默认应该是ANSI的,请大家点下拉框,选择UTF-8,再点保存,再执行试试看,如果不出意外,乱得更厉害 了,呵呵,晕了吧.别急,想想原因,因为我们做的页面是HTML返回的,以前我们写HTML时,看到body前面,也就是head里都有一句meta,应 该是这样的:

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

也就是指定页面以gb2312编码返回结果,一定要写在有返回结果输出的前面.大家都知道gb2312是简体中文吧,我们今天说的是UTF-8编码,我们就将gb2312改成UTF-8吧,全部代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<%

Response.Write "第一次测试UTF-8页面"

%>

再执行看看,嗯,这次正常显示了吧.......

asp网页utf8乱码结论:采用UTF-8编码,除了要将文件另存为UTF-8格式之外,还需要同时指定codepage及charset.

保证asp叶面一定不会出现乱码的代码应该是这样的:

(假定是UTF-8的叶子)

<%@ CODEPAGE=65001 %>

<% Response.CodePage=65001%>

<% Response.Charset="UTF-8" %>

可以建立公共文件code.asp,所有页面都包含这个编码指定.

Asp生成UTF-8格式的文件(编码)

ASP中操作UTF-8格式的文件

注意:这里说的ASP可不是ASP.net。

ASP由于是一种古老的语言,它的一些功能对UTF-8支持非常差。

比如,你想生成一个UTF-8格式的文件,使用常用的 Scripting.FileSystemObject 对象就不行。

Scripting.FileSystemObject 对象创建文件的函数,是下面方式:

FileSystemObject.CreateTextFile(filename[,overwrite[,unicode]])

其中的 unicode 属性是这样描述的:

可选项。Boolean 值指明是否以 Unicode 或 ASCII 文件格式创建文件。如果以 Unicode 文件格式创建文件,则该值为 True;如果以 ASCII 文件格式创建文件,则该值为 False。如果省略此部分,则假定创建 ASCII 文件。

我们是无法用这个函数来创建UTF-8格式文件的。

这时候,我们可以使用 ADODB.Stream 对象,使用方法见下面:

以下是引用片段:

Set objStream = Server.CreateObject("ADODB.Stream")

With objStream

.Open

.Charset = "utf-8"

.Position = objStream.Size

.WriteText=str

.SaveToFile server.mappath("/sitemap.xml"),2

.Close

End With

Set objStream = Nothing

附:

ASCII 、Unicode 、 UTF-8 介绍:

ASCII 是一种字符集,包括大小写的英文字母、数字、控制字符等,它用一个字节表示,范围是 0-127。

由于 ASCII 表示的字符非常有限,各个国家或者地区在此基础上提出了自己的字符集,比如在中国应用非常广泛的 GB2312,它为汉字提供了编码,用两个字节表示。

这些字符集之间互不兼容,相同的数字可能表示不同的字符,为信息交流带来了麻烦。

Unicode 是一种字符集,它将世界上的所有字符映射成一个唯一的数字(code point),比如字母 a 对应的数字 0x0041。目前 Unicode 还处于发展中,它所包容的字符越来越多。

在将 Unicode 表示的字符进行存储时,还需要一定的编码方式,比如 UCS-2,它用两个字节来表示 Unicode 编码的字符。而 UTF-8 是 Unicode 字符集的另外一种编码方式,它是变长度的,最多 6 个字节,小于 127 的字符用一个字节表示,与 ASCII 字符集的结果一样,因而具有非常好的兼容性,ASCII 编码下的英语文本不需要修改就可以当作 UTF-8 编码进行处理,应用非常广泛。

完整示例:

'================================================

'函数名:CreatedTextFiles

'作 用:创建文本文件

'参 数:filename ----文件名

' body ----主要内容

'================================================

Public Function CreatedTextFiles(ByVal FileName, ByVal body)

On Error Resume Next

If InStr(FileName, ":") = 0 Then FileName = Server.MapPath(FileName)

Dim oStream

Set oStream = CreateObject("ADODB.Stream")

oStream.Type = 2 '设置为可读可写

oStream.Mode = 3 '设置内容为文本

oStream.Charset = "UTF-8"

oStream.Open

oStream.Position = oStream.Size

oStream.WriteText body

oStream.SaveToFile FileName, 2

oStream.Close

Set oStream = Nothing

If Err.Number <> 0 Then Err.Clear

End Function


调用示例:

Dim strContent

Dim filePath

FilePath="../text.txt"

strContent = "T8 Tube www.t8tube.com"

CreatedTextFiles filePath, strContent'生成UTF-8编码的文件

ASP UTF-8页面乱码以编码转换

最好的方法:

先说一下基本的东西:

<%@ codepage=65001%>UTF-8

<%@ codepage=936%>简体中文

<%@ codepage=950%>繁体中文

<%@ codepage=437 %>美国/加拿大英语

<%@ codepage=932 %>日文

<%@ codepage=949 %>韩文

<%@ codepage=866 %>俄文

codepage指定了IIS按什么编码读取传递过来的串串(表单提交,地址栏传递等)。

出乱码的原因也就是网站要整合的时候模块编码不相同引起的。

就像我的博客相同,整合的时候都会出这个问题,因为BLOG是Utf-8的,

近来很多网友都在为这个问题咨询,我尝试了很多种方法。

最方便的方法如下:

不要转换任何模块网页的编码该utf-8的还是utf-8,该Gb22312的还是Gb2312

在Utf-8模块的包文档(如conn.asp,但是要注意conn.asp必须是在第一行调用)最前面加上

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>

<%Session.CodePage=65001%>

在GB2312模块的包文档最前面加上

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

<%Session.CodePage=936%>

其他编码的类推。

ASP中汉字与UTF-8的互相转换

'=============汉字转换为UTF-8==================

function chinese2unicode(Str)

for i=1 to len(Str)

Str_one=Mid(Str,i,1)

Str_unicode=Str_unicode&chr(38)

Str_unicode=Str_unicode&chr(35)

Str_unicode=Str_unicode&chr(120)

Str_unicode=Str_unicode& Hex(ascw(Str_one))

Str_unicode=Str_unicode&chr(59)

next

chinese2unicode = Str_unicode

end function


'=============UTF-8转换为汉字==================

function UTF2GB(UTFStr)

for Dig=1 to len(UTFStr)

if mid(UTFStr,Dig,1)="%" then

if len(UTFStr) >= Dig+8 then

GBStr=GBStr & ConvChinese(mid(UTFStr,Dig,9))

Dig=Dig+8

else

GBStr=GBStr & mid(UTFStr,Dig,1)

end if

else

GBStr=GBStr & mid(UTFStr,Dig,1)

end if

next

UTF2GB=GBStr

end function


function ConvChinese(x)

A=split(mid(x,2),"%")

i=0

j=0

for i=0 to ubound(A)

A(i)=c16to2(A(i))

next

for i=0 to ubound(A)-1

DigS=instr(A(i),"0")

Unicode=""

for j=1 to DigS-1

if j=1 then

A(i)=right(A(i),len(A(i))-DigS)

Unicode=Unicode & A(i)

else

i=i+1

A(i)=right(A(i),len(A(i))-2)

Unicode=Unicode & A(i)

end if

next

if len(c2to16(Unicode))=4 then

ConvChinese=ConvChinese & chrw(int("&H" & c2to16(Unicode)))

else

ConvChinese=ConvChinese & chr(int("&H" & c2to16(Unicode)))

end if

next

end function

function c2to16(x)

i=1

for i=1 to len(x) step 4

c2to16=c2to16 & hex(c2to10(mid(x,i,4)))

next

end function

function c2to10(x)

c2to10=0

if x="0" then exit function

i=0

for i= 0 to len(x) -1

if mid(x,len(x)-i,1)="1" then c2to10=c2to10+2^(i)

next

end function

function c16to2(x)

i=0

for i=1 to len(trim(x))

tempstr= c10to2(cint(int("&h" & mid(x,i,1))))

do while len(tempstr)<4

tempstr="0" & tempstr

loop

c16to2=c16to2 & tempstr

next

end function

function c10to2(x)

mysign=sgn(x)

x=abs(x)

DigS=1

do

if x<2^DigS then

exit do

else

DigS=DigS+1

end if

loop

tempnum=x

i=0

for i=DigS to 1 step-1

if tempnum>=2^(i-1) then

tempnum=tempnum-2^(i-1)

c10to2=c10to2 & "1"

else

c10to2=c10to2 & "0"

end if

next

if mysign=-1 then c10to2="-" & c10to2

end function

GB2312转UTF-8

'个人代码风格注释(变量名中第一个小写字母表表示变量类型)

'i:为Integer型;

's:为String;

Function U2UTF8(Byval a_iNum)

Dim sResult,sUTF8

Dim iTemp,iHexNum,i

iHexNum = Trim(a_iNum)

If iHexNum = "" Then

Exit Function

End If

sResult = ""

If (iHexNum < 128) Then

sResult = sResult & iHexNum

ElseIf (iHexNum < 2048) Then

sResult = ChrB(&H80 + (iHexNum And &H3F))

iHexNum = iHexNum \ &H40

sResult = ChrB(&HC0 + (iHexNum And &H1F)) & sResult

ElseIf (iHexNum < 65536) Then

sResult = ChrB(&H80 + (iHexNum And &H3F))

iHexNum = iHexNum \ &H40

sResult = ChrB(&H80 + (iHexNum And &H3F)) & sResult

iHexNum = iHexNum \ &H40

sResult = ChrB(&HE0 + (iHexNum And &HF)) & sResult

End If

U2UTF8 = sResult

End Function

Function GB2UTF(Byval a_sStr)

Dim sGB,sResult,sTemp

Dim iLen,iUnicode,iTemp,i

sGB = Trim(a_sStr)

iLen = Len(sGB)

For i = 1 To iLen

sTemp = Mid(sGB,i,1)

iTemp = Asc(sTemp)

If (iTemp>127 OR iTemp<0) Then

iUnicode = AscW(sTemp)

If iUnicode<0 Then

iUnicode = iUnicode + 65536

End If

Else

iUnicode = iTemp

End If

sResult = sResult & U2UTF8(iUnicode)

Next

GB2UTF = sResult

End Function

'调用方法

Response.BinaryWrite(GB2UTF("中国人"))

5分钟编写一个ASP论坛

经典!5分钟编写一个ASP论坛

  学ASP朋友的。。给大家分享个好东西

  大家在网上看到各种各样的ASP论坛是不是觉的做论坛很难呢,其实我们用简单的ASP语句就完全可以完成一个属于自己的论坛。下面我教大家如何用ASP来打造一个属于自己的论坛,自己的东西毕竟用起来爽吗。  

  同时,再复杂的论坛的写成也离不开下面的基本步骤,大家仔细看了。   

  一、建立文件!

  最简单的论坛也要有几个必要的文件,就是:   

  1、数据库,用来储存发表的帖子!-------命名为:bbs.mdb   

  2、有数据库就必须连接数据库,该文件用来连接数据库:----命名为:conn.asp   

  3、发表帖子的文件----命名为:say.asp   

  4、保存发表帖子内容的文件-----命名为:save.asp   

  5、显示帖子标题的文件------命名为:index.asp   

  6、显示帖子内容的文件,即点击标题后所进入的页面-----命名为:show.asp   

  建立文件是可以先建立文本文档,他的格式为"文件名.txt",我们只需把它改为"文件名.asp"

  二、各文件的主要内容   

  1、bbs.mdb

  打开这个数据库,建立一个表,命名为bbs


  该表中有几个字段:     

  name(用来储存发表的作者),数据类型为“文本”   

  title(用来储存帖子的主题),数据类型为“文本”   

  body(用来储存帖子的内容),数据类型为“备注”   

  2、conn.asp

  源代码为:

  <%

  Server.scriptTimeout="10"

  connstr="DBQ="+server.mappath("═bbs═.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"

  set conn=Server.CreateObject("ADODB.connection")

  conn.open connstr

  %>

  这个文件就是这样,代码内容大家就自己研究,这个我也不知道怎么说才好!   

  3、say.asp   

  源代码为:

  <form method="POST" action="save.asp">

  <p>大名:<input type="text" name="name" size="20"></p>

  <p>标题:<input type="text" name="title" size="91"></p>

  <p>内容:</p>

  <p><textarea rows="11" name="body" cols="97">

值得学习一下!

ASP动态网页编程19个基本技巧

ASP动态网页编程19个基本技巧

1. 现在的日期时间命令是
<%=now%> 即可


2.ASP取得表格(from)数据输入的方法,是使用一个内置的对象(object)―Requect,
它以get,post而异。


3.若要自己用VB或其它语言编写,.dll文件供ASP使用需将DLL文件注册方可:DOS下
输入 regsbr32 *.dll


4.显示五个重复的句子,字体越来越大
<% for i=1 to 5 %>
<font size=<% =i %> color=#00ffff>
快速ASP
</font>
<br>
<% next %>


5.传送字符串到用户端
response.write string
如:<% response.write "Welcome" %>


6.链接到指定的URL地址
response.redirect url
如:
<% response.redirect "homepage.asp"
%>


*但是如果此.ASP的文件内容已经传送到用户断,则再用redirect时会发生错误。


7.其他语言与ASP的结合:
如:早上显示早安,下午显示你好
<%
if time>+#12:00:00 AM# and time<#12:00:00 PM #
then
greeting="早安!"
else
greeting="你好!"
end if
%>
<%=greeting %>


8.<script>标记在ASP中的应用
例:


<html>
<body>
<% call function1 %>
</body>
</html>
<script runat=server language=javascript>
function function1()
{
...
}
</script>


9.#include 包括其它文件
<!--#include virtualfile="filename"-->
virtual指虚拟的文件地址。
file 代表绝对的文件地址。
如:
<!--#include virtual="/booksamp/test.asp"-->
<!--#include file="/test/test.asp"-->


而且可以层层嵌套。另外#include 不能在<%--%>之内


10.ASP取得表格输入数据的方法
:GET POST
一.get:用户端将数据加到URL后,格式为”?字段1=输入数据1&字段2=输入数据2&...",
再将其送到服务器。
如: action为www.abc.com, 字段Name输入数据为jack,字段age的数据为15,则用get方法为
http://www.abc.com?Name=jack&Age=15


二.post:用户端用http信息数据传送到服务器
ASP中:
get:使用“输入数据= Request.QueryString("字段名")",将附加于URL的数据取出。
post:使用“输入数据=Request.Forml"(字段名")",读取HTTP信息数据字段。
* Request.QueryString范例
如:〈A hery="aspform.asp?Name=jack&Age=15">
按此〈/A〉〈p〉
Name:<%=request.QueryString("Name")%)
Age:<%=request.QeueryString("Age")%)
* get 范例
・aspturm.asp:
<form action="asp1b.asp" method="get">
姓名: <input type=text name="input1" value="Your name">
<p>
特征: <select name="input2">
<option>cool!
<option>handsome
<option>warmhearted
</select>
<input type=submit value="ok">
</form>
asp1b.asp的内容
<html><body>
<% =request.querystring("input1") %> hi, your character is
<%= request.querystring("input2") %>
</body></html>
11.request.From
语法: request.From(name)[(index).count]
name:字段名
index:当同一字段输入多个值时,指针值index指定要读取同一字段的那一个值,范围由1到
request.From(name).count
count:由request.From(name).count可知name字段输入几个值,若无此name字段,count为0



如下例:
<%
forI=1 to request.fron("input1").count
response.write request.From("input1")(I)&"<br>"
next
%>
若input1有两个值则都显示出
*若未采用index指定读取哪个.可用
〈%
for each item request.From("input"))
repomse.write item &"<br>"
next
%>
也可用" for each x in tewuest.From"重复取得所有字段的输入值。


<% for each x in request.Form %>
request.From (<%=x%)=<%=request.Form
(x)%> <br>
<% next %>



12.
获取客户端TCP/IP端口的方法:
如: tcp/ip port is <%=request("server_port")%>
使用server_port可以得到接收HTTP request的连接port信息


13.
通过HTTP_ACCEPT_LANGUAGE的HTTP表头信息,可以得到用户端的使用语言
环境.
以下例子判断用户端的语言环境,给出不同的页面.
<% language=request.servervariables("HTTP_ACCEPT_LANGUAGE")
if language="en" then %>
<!--#include file="english.asp">
<% else %>
<!--#include file="china.asp">
<% end if%>


14.主页保留的期限
如果用户端浏览器在一个主页保留的期限内,再度浏览此主页,则原在用
户端硬盘上的主页内容将被显示.
response.expires[=number]
其中NUMBER为记录数据盒(PAGE BOX)的保留期限,单位是分钟.
或:
response.expiresabsolute[=[date][time]]
如:设定一个主页保留期到某个日子.


15.连接到指定的URL地址
如:你希望确认用户已经看过INDEX.HTM,则可以检查是否已经看过,如
尚未确认,则自动连接到首页
<%
if not session("BEEN_to_home_page") then
response.redirect "index.asp"
end if
%>


16.判断是回到本页还是第一次进入
<%
if user_has_been_here_before then
response.write "<h3 align=center> Welcome Back
again"
else
response.write "Welcome!"
end if
%>



17.显示数据库中的图片与超级连接


<%
set conn=server.creatobject("ADODB.connection")
conn.open "myaddress"
set rs=conn.execute("select name,tel,url,image from
myaddress")
%>


<p>
<tabel>
<tr>
<% for i=0 to rs.fields.count-1 %>
<td>
<b>
<%=rs(i).name %>
</b>
</td>
<% next %>
</tr>
<% do while not rs.eof %>
<tr>
<% for i=0 to rs.fields.count-1 %>
<td valign =top>
<%
if rs(i).name="image" then
response.write "<img src="""&rs(i)&""" >"
else
if rs(i).name="url" then
response.write "<a href="""&rs(i)&""">"&rs(i)&"</a>"
else
response.write rs(i)
end if
end if
%>
</td>
<%next%>
</tr>
<% rs.movenext
loop
rs.close
conn.close
%>
</html>


18. 用ASP取得浏览器信息
<%
set a=server.creatobject("MSWC.BROWSERTYPE")
msg="您使用的浏览器是:"+a.browser+"version"+a.version
%>
<%=msg%>


19. asp访问cookies的方式(使用response和request)
如下:
写入cookies:
response.cookies("待写入的coookies名称")
="待写入数据“
读取cookies:
读取数据=request.cookies("待读的cookies名称")


* 写入时注意
@ 写入cookies的response.cookies程序段必须放在<html>标记
之前。而且不可以有任何的其他html代码
@ COOKIES中必须使用expires设定有效期, COOKIES才能真正的
写入客户端硬盘中。如:
response.cookies("待写入的名称“).expires=#july 1,1998#
或response.cookies("名称").expires=DATE+365

ASP编程常用代码

ASP编程常用代码

1. ASP与Access数据库连接: 

  dim conn,mdbfile


  mdbfile=server.mappath("数据库名称.mdb")


  set conn=server.createobject("adodb.connection")


  conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=数据库密码;dbq="&mdbfile


  2. ASP与SQL数据库连接:


  dim conn


  set conn=server.createobject("ADODB.connection")


  con.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称


  建立记录集对象:


  set rs=server.createobject("adodb.recordset")


  rs.open SQL语句,conn,3,2


  3. SQL常用命令使用方法:


  (1) 数据记录筛选:


  sql="select * from 数据表 where 字段名=字段值 order by 字段名 "


  sql="select * from 数据表 where 字段名 like ‘%字段值%‘ order by 字段名 "


  sql="select top 10 * from 数据表 where 字段名 order by 字段名 "


  sql="select * from 数据表 where 字段名 in (‘值1‘,‘值2‘,‘值3‘)"


  sql="select * from 数据表 where 字段名 between 值1 and 值2"


  (2) 更新数据记录:


  sql="update 数据表 set 字段名=字段值 where 条件表达式"


  sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"


  (3) 删除数据记录:


  sql="delete from 数据表 where 条件表达式"


  sql="delete from 数据表" (将数据表所有记录删除)


  (4) 添加数据记录:


  sql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"


  sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)


  (5) 数据记录统计函数:


  AVG(字段名) 得出一个表格栏平均值


  COUNT(*字段名) 对数据行数的统计或对某一栏有值的数据行数统计


  MAX(字段名) 取得一个表格栏最大的值


  MIN(字段名) 取得一个表格栏最小的值


  SUM(字段名) 把数据栏的值相加


  引用以上函数的方法:


  sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"


  set rs=conn.excute(sql)


  用 rs("别名") 获取统的计值,其它函数运用同上。


  (5) 数据表的建立和删除:


  CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )


  例:CREATE TABLE tab01(name varchar(50),datetime default now())


  DROP TABLE 数据表名称 (永久性删除一个数据表)


  (6) 记录集对象的方法:


  rs.movenext 将记录指针从当前的位置向下移一行


  rs.moveprevious 将记录指针从当前的位置向上移一行


  rs.movefirst 将记录指针移到数据表第一行


  rs.movelast 将记录指针移到数据表最后一行


  rs.absoluteposition=N 将记录指针移到数据表第N行


  rs.absolutepage=N 将记录指针移到第N页的第一行


  rs.pagesize=N 设置每页为N条记录


  rs.pagecount 根据 pagesize 的设置返回总页数


  rs.recordcount 返回记录总数


  rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否


  rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否


  rs.delete 删除当前记录,但记录指针不会向下移动


  rs.addnew 添加记录到数据表末端


  rs.update 更新数据表记录


  判断所填数据是数字型


  if not isNumeric(request("字段名称")) then


  response.write "不是数字"


  else


  response.write "数字"


  end if

ASP基本语法

ASP基本语法

  • 建立ASP程序

      ASP程序是扩展名为.asp的文本文件,其中包括文字,HTML语句,ASP命令及其他脚本语言。
      ASP命令必须放在"<%"与"%>"之间

  • 程序注释

      为了养成良好的编程风格外,适度的注释不可少,ASP提供了两中注释方式
    1、但引号(),在单引号之后的这行文字都视为注释
    2、rem 关键词,在REM后的文字,视为注释

  • 赋值语句

      ASP中一般变量的赋值语句是 "="
      而对象是用 set 语句来赋值的

  • 算术运算符
    运算符功能
    +正号
    -负号
    +加法
    -减法
    *乘法
    /除法
    \整数除法
    Mod余数
    ^指数
  • 关系运算符
    运算符功能
    =等于
    <>不等于
    小于
    大于
    <= 小于等于
    >=大于等于
    IS比较变量是否指向同一对象
  • 逻辑运算符

      ASP的逻辑运算符有:
    1、NOT 将逻辑值加以反向
    2、AND “和”或者说“且”运算
    3、OR “或”运算
    4、XOR “异或”运算
    5、EPV 判断两个表达式逻辑相等,两者相同结果为真,否则为假
    6、IMP 判断两个表达式逻辑上是否相关

  • 字符串运算符

      ASP只有一个字符串运算符 ,它可以强迫两个表达式做字符串连接

  • 变量申明

      变量申明必须注意
    1、有效变量名称不能大于255个字符
    2、变量名称必须一字母开头
    3、在同一个有效范围内变量名称必须唯一

      变量申明 DIM 变量名称
      常数申明 CONST 常数名称=常数值

  • 数据类型

      对ASP而言,它只有一种Variant(通用变量)数据类型,这是一种非常特殊的数据类型,你可以将任何的数据类型指定给这种变量,例如布尔值、字节、整数、长整数、单精度浮点数、双精度浮点数、货币、日期等等

  • 文字基本设制代码

    文字基本设制代码




















    <marquee scrollamount=8 direction=right behavior=alternate><b><font color=#7700bb size=5><font color=lime>


    <marquee direction=up behavior=alternate width=40 height=200 align="middle">祝</marquee><font color=red>


    <marquee direction=up behavior=alternate width=40 height=150>愿</marquee><font color=orange>


    <marquee direction=up behavior=alternate width=40 height=200>朋</marquee><font color=fuchsia>


    <marquee direction=up behavior=alternate width=40 height=150>友</marquee><font color=olive>


    <marquee direction=up behavior=alternate width=40 height=200>们</marquee><font color=green>


    <marquee direction=up behavior=alternate width=40 height=150>开</marquee><font color=red>


    <marquee direction=up behavior=alternate width=40 height=200>心</marquee><font color=orange>


    <marquee direction=up behavior=alternate width=40 height=150>!</marquee><font color=orange></font></b></marquee>


























    <center><font face=隶书 color=red size=15>


    <marquee direction=up behavior=alternate width=60 height=120>祝</marquee><font color=yellow>


    <marquee direction=up behavior=alternate width=60 height=80>愿</marquee><font color=brown>


    <marquee direction=up behavior=alternate width=60 height=120>朋</marquee><font color=green>


    <marquee direction=up behavior=alternate width=60 height=80>友</marquee><font color=orange>


    <marquee direction=up behavior=alternate width=60 height=120>们</marquee><font color=yellow>


    <marquee direction=up behavior=alternate width=60 height=80>开</marquee><font color=orange>


    <marquee direction=up behavior=alternate width=60 height=120>心</marquee></font></b></marquee></font></center></font></font></font></font></font>


    </font>









    3
    你的文字

    4










    <MARQUEE behavior=alternate direction=left scrollAmount=3 width="4%"><font face=Webdings>3</font></MARQUEE><MARQUEE scrollAmount=1 direction=left width="2%"> </MARQUEE>你的文字<MARQUEE scrollAmount=1 direction=right width="2%"> </MARQUEE><MARQUEE behavior=alternate direction=right scrollAmount=3 width="4%"><font face=Webdings>4</font></MARQUEE>



    有边框的










    <marquee style="border:1px dotted #CC0066 ">你的文字</marquee>



    有底色 文字颜色










    <font color="#0000FF"><marquee direction="left" style="background: #FFCC00">你的文字</marquee></font>




    文字一


    文字二










    <marquee behavior=alternate direction=up scrollamount=2 scrolldelay=65 height=80 style="Text-align;filter:wave(add=0,phase=1, freq=1,strength=15,color=.FFFFFF)"><center>文字一<BR />文字二</center></marquee>


    插入文字










    <marquee behavior="alternate" direction="up" width="80%"><marquee direction="right" behavior="alternate">插入文字</marquee></marquee>




    插入文字










    <marquee scrolldelay=500 scrollamount=100>插入文字</marquee>



    插入文字










    <marquee direction=移动方向 scrollamount=移动速度数值>插入文字</marquee>


    说明:direction=移动方向 可选值为向上(up) 向下(down) 向左(left) 向右(right)



    ==============================================================================================











    绝 地 反 击


    <MARQUEE direction=up>


    <TABLE cellSpacing=0 cellPadding=0 align=center background=http://xz7.2000y.net/admin/uploadfile/20044119194846010.jpg>


    <TBODY>


    <TR>


    <TD style="FILTER: chroma(color=#336699)">


    <TABLE align=center bgColor=lime>


    <TBODY>


    <TR>


    <TD align=middle><FONT style="FONT-SIZE: 60pt" face=华文行楷 color=#336699>绝 地 反 击</FONT></TD></TR></TBODY></TABLE></FONT></TD></TR></TBODY></TABLE></FONT></MARQUEE></DIV>




    <DIV align=center>


    <DIV style="FILTER: shadow(color=#c299ff, strength=40); WIDTH: 480px"><FONT style="FONT-WEIGHT: normal; FONT-SIZE: 150pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal" face=华文彩云 color=#fff000>福</FONT> <BR></DIV></DIV></DIV>












    朋友您辛苦了!


    <MARQUEE direction=up>


    <TABLE cellSpacing=0 cellPadding=0 align=center background=http://znrs.2000y.net/UploadFile/2004-5/2004510115258900.jpg>


    <TBODY>


    <TR>


    <TD style="FILTER: chroma(color=#336699)">


    <TABLE align=center bgColor=red>


    <TBODY>


    <TR>


    <TD align=middle><FONT style="FONT-SIZE: 60pt" face=华文行楷 color=#336699>朋友您辛苦了!</FONT></TD></TR></TBODY></TABLE></FONT></TD></TR></TBODY></TABLE></FONT></MARQUEE></DIV>




    <MARQUEE behavior=alternate direction=up height=250 scrollAmount=5><MARQUEE behavior=altrnate scrollAmount=2 width=460><FONT color=red face=楷体_gb2312 size=7>玫瑰夫人欢迎您</FONT></MARQUEE></MARQUE></MARQUEE>






    欢迎你朋友





    友朋你迎欢



    原代码:


    <FONT color=#0096ff face=隶书 size=7><MARQUEE height=50 width=240>欢迎



    常用字体



    <FONT style="FONT-SIZE: 40pt; FILTER: shadow(color=green); WIDTH: 100%; COLOR: white; LINE-HEIGHT: 150%; FONT-FAMILY: 华文彩云"><B>常用字体</B></FONT>



    *朋友别哭*















    <P align=center><FONT style="FONT-WEIGHT: bolder; FONT-SIZE: 70px; FILTER: blur(add=1, direction=45,strength=10); WIDTH: 450px; " color=#3333cc>朋友别哭</FONT></CAPTION> <BR></CAPTION></P>




    总有一天等到你!


    <P align=center><FONT style="FONT-WEIGHT: bolder; FONT-SIZE: 50px; FILTER: blur(add=1, direction=45,strength=10); WIDTH: 500px; ">


    <P><FONT color=#ff00ff>总有一天等到你! </FONT></P></FONT></CAPTION>


    <DIV></DIV><BR><BR><BR>


    华文行楷!


    </B><BR></B><FONT style="FONT-SIZE: 50pt; FILTER: shadow(color=#af2dco); WIDTH: 100%; COLOR: #730404; LINE-HEIGHT: 100%; FONT-FAMILY: 华文行楷" size=6>华文行楷!</FONT>


    <DIV></DIV><BR><BR></DIV>



    大家好!


    <CENTER><FONT style="FONT-SIZE: 60pt; FILTER: shadow(color=black); WIDTH: 100%; COLOR: #e4dc9b; LINE-HEIGHT: 150%; FONT-FAMILY: 华文彩云"><B>


    <P>大家好!</P></B></FONT></CENTER></DIV>



    一 杯 热 茶~*















    <CENTER><FONT style="FONT-SIZE: 40pt; FILTER: glow(color=black); WIDTH: 100%; COLOR: #e4dc9b; LINE-HEIGHT: 150%; FONT-FAMILY: 华文彩云"><B>一杯热茶~*</B></FONT></CENTER></DIV>



    一声问候...


    <FONT style="FONT-SIZE: 55pt; FILTER: shadow(color=#AF0530); WIDTH: 100%; COLOR: #f90b46; LINE-HEIGHT: 150%; FONT-FAMILY: 隶书"><B>一声问候...</B></FONT></DIV>


    这里是你我的家


    <FONT size=7><FONT color=#ff0000>这</FONT><FONT color=#d52a00>里</FONT><FONT color=#ab5400>是</FONT><FONT color=#817e00>你</FONT><FONT color=#57a800>我</FONT><FONT color=#2dd200>的家</FONT></FONT>



    别忘了,*.*@
















    <FONT style="FONT-WEIGHT: bolder; FONT-SIZE: 70px; FILTER: blur(add=1, direction=45,strength=10); WIDTH: 450px; " color=#3333cc>别忘了,,,,</FONT></CAPTION> <BR></CAPTION></P><BR></DIV>


    有空来坐坐*,,


    <DIV style="FILTER: shadow(color=#6495ED, strength=60); WIDTH: 480px"><FONT face=华文彩云 color=#9932cc size=7><B>


    <CENTER><BR>有空来坐坐*,,</CENTER>


    <CENTER></B>&nbsp;</CENTER></FONT></DIV></DIV>








    朋友,欢迎您的到来~*.~.








    朋友,欢迎您的到来~*.~.


    <CENTER>


    <MARQUEE scrollAmount=2 direction=down height=60>


    <CENTER><FONT face=华文彩云 color=#da70d6 size=6><B>朋友,欢迎您的到来~~~~</FONT></CENTER></B></MARQUEE>


    <CENTER>


    <MARQUEE scrollAmount=2 direction=up height=60>


    <CENTER><FONT face=华文彩云 color=#da70d6 size=6><B>朋友,欢迎您的到来~~~~</FONT></CENTER></B></MARQUEE></CENTER></DIV>


    <P></P></CENTER>





    Blog技巧-文字设制


    Blog技巧-文字设制





    1,文字基本设制

    基本代码如下:

    插入文字


    align=center 表示字体居中,可选值为居右(right)居左(left)
    color=颜色代码 具体颜色代码可参照:颜色选取<<点击查看
    face=字体 常用字体为:宋体.黑体.楷体.仿宋.幻缘.新宋体.细明体等
    size=字体大小,这里的最大值为7 取值越大文字就越大

    2,大字体文字


    效果:


    数到三就不哭


    代码:

    插入文字
    font:40pt 数值越大文字就越大。

    3,移动文字设置:

    基本代码1:

    <marquee direction=移动方向 scrollamount=移动速度数值>插入文字</marquee>


    说明:direction=移动方向 可选值为向上(up) 向下(down) 向左(left) 向右(right)


    基本代码2:


    <marquee behavior=移动效果>插入文字</marquee>


    说明:


    behavior=scroll 一圈一圈绕着走 


    behavior=slide


    只走一次 behavior=alternate 来回走


    停停走走:


    效果如:


    数到三就不哭


    代码如下:


    <marquee scrolldelay=500 scrollamount=100>插入文字</marquee>



    4,文字特效显示:


    效果一:


    数到三就不哭


    原代码:


    <CENTER><FONT style="COLOR: #e4dc9b; FILTER: shadow(color=black); FONT-FAMILY: 华文彩云; FONT-SIZE: 30pt; LINE-HEIGHT: 150%; WIDTH: 100%"><B>数到三就不哭</B></FONT></CENTER>


    效果二:


    数到三就不哭


    原代码:


    <CENTER><FONT style="COLOR: #e4dc9b; FILTER: glow(color=black); FONT-FAMILY: 华文彩云; FONT-SIZE: 30pt; LINE-HEIGHT: 150%; WIDTH: 100%"><B>数到三就不哭</B></FONT></CENTER>


    效果三:


    数到三就不哭


    原代码:


    <CENTER><FONT color=#0099ff style="FILTER: blur(add=1, direction=40,strength=10); FONT-SIZE: 30px; FONT-WEIGHT: bolder; POSITION: relative; LINE-HEIGHT: 150%; WIDTH: 450px">数到三就不哭</FONT></CENTER>


    效果四:


    数到三就不哭


    原代码:


    <MARQUEE behavior=alternate direction=up height=150 scrollAmount=5><MARQUEE behavior=altrnate scrollAmount=2 width=460 <IMG src="http://www.east128.com/bbs/UploadFile/2003-9/20039251018214901.gif"><FONT color=red face=楷体_gb2312 size=7>数到三就不哭</FONT></MARQUEE></MARQUE></MARQUEE>


    效果五:


    欢迎你朋友 友朋你迎欢


    原代码:


    <FONT color=#0096ff face=隶书 size=7><MARQUEE height=50 width=240>欢迎你朋友</FONT></MARQUEE><FONT color=#0000ff face=隶书 size=7><MARQUEE direction=right height=50 width=240>友朋你迎欢</MARQUEE></FONT></FONT>


    注明:在用这种效果时,文字移动范围的宽width的取值很重要,两段文字移动范转的width取值和一定要小于背景层width的取值。


    效果六:


    数到三就不哭


    原代码: <P align=center><FONT style="BACKGROUND-COLOR: #0099ff" color=#00ffff size=6>数到三就不哭</FONT></P>

    效果七:



    数到三就不哭




    原代码: <P align=center><FONT style="FONT-SIZE:30pt;filter:alpha(opacity=100,style=1);WIDTH:100%; COLOR:red;LINE-HEIGHT:100%;FONT-FAMILY:华文行楷"><B>数到三就不哭</B></FONT></P>

    说明:opacity属性:设置透明度,取值0至100之间的任意数值,100表示完全不透明;style属性:设置渐变风格,0表示均匀渐变,1表示线性渐变,2表示放射渐变,3表示直角渐变。而width:100%则表示参与渐变的对象的宽度,通常都设置为100%。

    效果八:



    数到三就不哭




    原代码: <P align=center><FONT style="FONT-SIZE:30pt;filter:dropshadow(color=#0099ff,offX=5,offY=3,Positive=1);WIDTH:100%; COLOR:#ff6600;LINE-HEIGHT:150%;FONT-FAMILY:华文行楷"><B>数到三就不哭</B></FONT></P>


    效果九:数到三就不哭


    原代码:<FONT style="FONT-SIZE:30pt;filter:FlipV(color=silver);WIDTH:100%; COLOR:red;LINE-HEIGHT:150%;FONT-FAMILY:华文行楷"><B>数到三就不哭</B></FONT>



    效果十:


    数到三就不哭


    原代码:<p align=right><FONT style="FONT-SIZE:30pt;filter:FlipH(color=silver);WIDTH:100%; COLOR:red;LINE-HEIGHT:150%;FONT-FAMILY:华文行楷"><B>数到三就不哭</B></FONT></p>


    FlipV产生上下变换,FlipH产生左右变换。


    效果十一:



    数到三就不哭



    原代码:<FONT style="FONT-SIZE:30pt;filter:wave(add=0,lightstrength=50,strength=5,freq=3,phrase=20);WIDTH:100%; COLOR:red;LINE-HEIGHT:100%;FONT-FAMILY:华文行楷"><B>数到三就不哭</B></FONT>
    add属性:布尔型,0或1,0表示将原始对象加入最后效果中,1则反之;
    freq属性:决定显示的频率,即应出现多少个波形;
    phrase属性:决定波形的形状,值取0至360之间;
    strength属性:决定波形的振幅。





    效果十二:



    数到三就不哭



    原代码:<P align=center><FONT style="FONT-SIZE: 55pt; FILTER: shadow(color=apar); WIDTH: 100%; COLOR: #00ff00; LINE-HEIGHT: 100%" face=汉鼎繁随意 size=6>数到三就不哭</FONT><FONT style="FONT-SIZE: 55pt; FILTER: shadow(color=apar); WIDTH: 100%; COLOR: #ff00ff; LINE-HEIGHT: 100%; FONT-FAMILY: 汉鼎繁中变" size=6></FONT><FONT color=#ff00ff> </FONT></P>


    感谢m1的分享

    more...
    Motion Blur

    <span style="width: 100%; Filter: Shadow(Color=#0000FF, Direction=225)">Motion Blur</span>



    Warped


    <span style="width: 100%; Filter: Wave(Add=0, Freq=2, LightStrength=20, Phase=10, Strength=5)">Warped</span>

    Flipped

    <span style="width: 100%; Filter: FlipV">Flipped</span>


    Dropshadow


    <span style="width: 100%; Filter: DropShadow(Color=#FF0000, OffX=2, OffY=2, Positive=1)">Dropshadow</span>


    Shadow


    <span style="width: 100%; Filter: Blur(Add = 1, Direction = 225, Strength = 10)">Shadow</span>

    Alpha

    <span style="width: 100%; Filter: Alpha(Opacity=100, FinishOpacity=0, Style=1, StartX=0, StartY=0, FinishX=580, FinishY=0)">Alpha</span>

    Flip Horizontal

    <span style="width: 100%; Filter: FlipH">Flip Horizontal</span>

    Mask

    <span style="width: 100%; Filter: Mask(Color=#00FF00)">Mask</span>





    批量替换-换行符

    到网上去复制文章时大家经常会碰到手动换行符 ,如果一篇文章不长,自己手动修改成段落标记符 ,还是比较简单的,也就是几分钟的时间而已。但如果碰到长篇大论的文章时,你还要这么做么?

    按CTRL+H快捷键打开查找替换对话框,在查找内容中输入“^l”,然后在替换为中输入“^p”。需要注意的是,“^l”和“^p”可以直接输入,也可以点击“高级”按钮,再选择特殊符号中的“手动换行符”和“段落标记”。

    替换“手动换行符”
    1 换行符  
    HTML Tag(标记)中,有一个换行符“”。它作用是,使文字等换行显示。换行-仅仅是另起一行,上、下行之间的间隔距离不变,且仍是同一个段落。网页中常用换行符,是因为换行后行距不变,而分段后,两行之间距离增大,相当于添加了一个空行。

    2 手动换行符  
    Word中,有一个手动换行符,它的作用与网页中的换行符基本相同。提示:Word中换行后,上、下行之间的距离,与分段一样。无论是Word,还是网页中,应用段落样式时,均以段落标记为界的。Word中手动换行符的存在,会给编辑带来麻烦,因此,应该要将换行符转换成段落标记。通常,Word中是不用换行符的。一旦将网页中的文字,复制、粘贴到Word中,网页中的换行符就转换成Word中的手动换行符。但是,用手工一个一个地改,实在是少慢差费。

    3 Word中替换换行符
    在Word将换行符转换成段落标记的工作,应该使用替换功能。
    方法是:
    ⑴单击中“编辑”·“替换”
    ⑵在“替换”对话框上,单击“高级”按钮。  
    ⑶将光标移至“查找内容”框中,单击“特殊字符”按钮后,单击“手动换行符”。  
    ⑷将光标移至“替换为”框中,单击“特殊字符”按钮后,单击“段落标记”。  
    ⑸单击“全部替换”即可。  
    如果需要替换的范围不是整个文档,可以将需要替换部分选中。当进行第⑸步后,出现一个询问是否搜索文档其他部分的对话框时,应单击“否”。

    如果遇到整篇文章有很多段的,需要把每段都区分开来,可以这样处理:
    1. 分段选择进行全部替换;
    2. 把各段打上标记(如不同颜色),待全部替换后,再分段。
    灵活运用!