欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

帮忙看看这段代码实现的是什么功能?多谢吭,

更新时间: 2014-01-05 01:52:37 责任编辑: Author_N1

 

帮忙看看这段代码实现的是什么功能?谢谢吭,在线等。。。
<%
  Function GetLen(str)
  Dim l, t, c, i
  l = Len(str)
  t = l
  For i = 1 To l
  c = Asc(Mid(str, i, 1))
  If c < 0 Then c = c + 65536
  If c > 255 Then t = t + 1
  Next
  GetLen = t
  End Function
'"len"返回字符串内字符的数目,或是存储一变量所需的字节数。"Mid"从字符串中返回指定数目的字符。
%>
---------------------------------------------------
response.write "<a href='typenews.asp?id="&id&"'title='"&title&"'>"
  if GetLen(title)>Linenum then
  response.write ""&LeftStr(title,Linenum-2)&""
  response.write "..."
  else
  response.write ""&title&""
  end if
在这段代码中“GetLen”函数实现的是什么功能?

--参考方法--
很明显,GetLen(str)返回的是str的某种长度。其实,它是这样定义的:

1、若字符是ASCII字符(不管是全角还是半角,即不管是双字节字符还是单字节字符),则其长度算为1;
2、其它字符(汉字、韩文等)长度算为2。

最后把所有字符的长度相加,就得到GetLen(str)。

If c < 0 Then c = c + 65536 是判断是否是双字节字符,如汉字、全角英文字符。
If c > 255 Then t = t + 1 则继续判断,该双字节字符是否英文字符,因为扩展ASCII字符集的编码范围是0-255,不管是采用单字节编码(半角,真正英文编码),还是双字节编码(如中文国标GB2312),都是一样的,这是为了保持兼容性。

如GetLen("aa")=GetLen("aa")=2,GetLen("aa中")=GetLen("aa中")=4
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 01:52:37
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/2391/
本文WWW.DOC100.NET DOC100.NET版权所有。