荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: pas (流星), 信区: Visual
标  题: 用VB编写标准CGI程序(5)
发信站: 荔园晨风BBS站 (Fri May 11 14:09:31 2001), 转信

  一般地 用VB编译生成的CGI程序不能正确处理中文信息。这主要表现在CGI程
序向STDOUT输出的中文在Web页面上无法正确显示 可通过在该中文字符串后跟著
输出一些空格来解决这个问题。当使用HTML标识符<P> </P>对Web页面进行排版时
 浏览器在显示该Web页面时会吃掉多馀的空格而只保留一个。在这种情况下 这
些空格对Web页面的外观基本上没有什堋影响。如果使用HTML标识符<PRE>
</PRE>对Web页面进行排版 则由于空格不能被浏览器吃掉 所以Web页面的外观将
会受到较大的影响。不过 这时可用HTML的表格<table> <P>来代替<PRE>对Web页
面进行排版。

  注意 整个CGI程序的主体必须放在MAIN()函数中。

  二 URL译码与解码

  由于Web服务器和浏览器不能正确处理一些特殊的字符 Web服务器和浏览器之
间可能会因此而产生某种程度的误会 所以在数据被传送之前 浏览器都要对表单
内客户输入的数据中的特殊字符进行URL译码。

  例如 Web系统用“=”分解表单各元素的NAME和VALUE属性 用“&”分解不同
表单元素的输入数据。如果在表单的输入数据中包含这些特殊的字符 并且表单的
数据在传送给Web服务器前不作任何处理 则Web服务器将无法知道哪一个“=”
“&”是用户输入的 哪一个是浏览器加上的。在由表单属性ACTION定义的URL中
也可能会出现一些特殊的字符 当在CGI程序的名称和路径信息(Path
Information)中出现“=” “&”和“ ”时 都会影响数据的正确传送。

  URL译码(URL Encoding)就是将Web服务器所不能正确处理的特殊字符转换成
它的十六进制数的形式 比如将“%”转换成“%25” “=”转换成“%3D”等等。
这些特殊的字符通常被称作Web系统的保留字符。在Web系统上无论是用GET方法还
是用POST方法传送的数据都要进行URL译码。CGI程序要想处理表单传送来的数据
还必须对浏览器URL译码过的数据进行解码。因此 理解URL译码对于我们进行CGI
编程是非常重要的。URL译码一般包括以下步骤

  1 浏览器将所传送的数据根据表单所包含的元素分解成“NAME=VALUE”形式
 NAME和VALUE分别是表单元素的属性。其中 VALUE属性中存储客户机在表单中输
入的数据 如果客户机没有输入数据 则VALUE存储的是表单定义的缺省值如果
缺省值也没有定义 则VALUE值为空。

  2 代表表单中各元素的各个“NAME=VALUE”对被浏览器用“&”连接起来。


  3 VALUE属性中存放的数据若含有空格 则被转换成“+”。

  4 URL和输入数据中所包含的Web系统的保留字符必须被译码成其十六进制数
形式。

  5 被译码后的字符被表示成一个“%”和它们的十六进制数形式(即%HH)。



--
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.52.78]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店