|
| 作者:佚名 电脑来源:中国站长站 点击数: 更新时间:2008-1-6 |
|
----在前面已提过perl具有非常强大的字串处理功能,它除了提供一些字符运算比较符(eq,ne,le...)外,还提供了大量针对字符串匹配的参数。这是其它一些cgi编写语言所不具有的。 ----我们经常会遇到,传递的参数是中文信息,但接收到后却都是乱码。这是什么原因呢?我们都知道,一个中文占用2个字节,而一个英文字母只占用1个字节,unicode编码除外(unicode是Microsoft提出的标准,采用16位同时对中英日韩等多国文字进行编码的机制)。server接收到参数信息后,会以字节为单位把每单位信息转换为两个十六进制数,这时候,中文的高字节会被转换为"%**",而低字节也被转换为"%**"。如果使用perl,该参数信息非常容易就能被还原出来。 ... $info=$ENV{'QUERY_STRING'}; #读取参数信息到变量$info中 $info=~s/%([\dA-Fa-f][\dA-Fa-f]) /pack("c",hex($1))/eg; ----该语句的语法含义是:s是取代的意思;"/"中的内容是要找的格式(“=~”是一些特殊字符,具体含义见表一);%([\dA-Fa-f][\dA-Fa-f])表示以%开始,后连续跟着两个十六进制数的字串(\dA是一些字符匹配格式,具体含义见表二),找到该字串后,系统把该值存放在$1中;pack("c",hex($1))表示把$1中的数转换为真正的十六进制字串;e表示把整个要替换的字串当做表达式;g表示整个字串都要做相应的查找替换。 ----除了转换中文参数外,我们还经常要面对查找、替代诸如log文件、邮件等大量信息的困难;如果使用perl提供的一系列参数,将省去很多不必要的麻烦。限于篇幅关系,下面仅列出一些常用的参数。 ----表一: =~寻找给定字串的特殊格式 m取消//内“^”、“$”的特殊含义 i字串匹配时不考虑大小写 x字串匹配时不考虑空格 s取代的意思 表二: \w匹配一个文字或数字字符,包括“_” \W匹配一个非文字/数字字符 \s匹配一个空白字符,包括“space”、“tab”键入的字符 \S匹配一个非空白字符 \d匹配一个数字字符 \D匹配一个非数字字符 \b匹配一个二进制字符 \B匹配一个非二进制字符 \A仅从字串开始进行匹配 \Z仅从字串最后进行匹配 \G表示m/结束 |
| 电脑录入:不落尘埃 责任编辑:不落尘埃 |
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
| ■■相 关 文 章: | 网站版权与免责声明: |
| XMLHTTP资料 在 XSL/XSLT 中实现随机排序 用XML和XSL来生成动态页面 利用XMLSerializer将对象串行化到… XML入门精解之结构与语法 实例讲解:开发SWING的XML框架 使XML本地化和关系化 |
1、信息来源网络,感谢原创者和原录入者。本站转载其文并不代表赞同其观点或证实其内容。网站所有信息仅供参考,不构成任何之建议、推荐或指引,不能仅凭此信息购药、用药、诊断疾病或开处方,而应以其使用说明书为准,并谨遵医嘱。
2、网站中转载的资料及图片,其版权属原作者或页面内声明的版权人拥有。如果文章的作者或编辑认为不宜上网供大家浏览,或不应无偿使用,请及时用电子邮件或电话通知我们,以便迅速采取适当措施,避免双方造成不必要的经济损失。 |
|
||||||||||