ASC函数返回值是1的问题及asp中Asc、AscB、AscW的用法含义

ASC函数返回值是1的问题
在使用asc函数时如果参数为中文字符的时候,常常会遇到返回值为1的情况,出现这种问题大多是因为程序代码是采用UTF-8编码方式编写的,比如下面这个函数

function str_len(str)
dim str_count,i
str_count=0
if str <>"" then
for i=1 to len(str)
if abs(asc(mid(str,i,1))) >127   then
str_count=str_count+2
else
str_count=str_count+1
end if
next
end if
str_len=str_count
end function

如果你编写上面这个函数是在utf-8的编码方式编写的话,当参数为英文时,返回值正确,如果为中文就返回1。

解决方法:

如果你不更改程序源码的编码方式,还想使用此函数,那只有把asc函数改为ascw函数,这样的话就可以正常使用了。


 

asp中Asc、AscB、AscW的用法及含义

Asc、AscB、AscW 是 VBScript 中的三个函数,其区别如下。

Asc(string) 返回与字符串的第一个字母对应的 ANSI 字符代码。返回值:英文 >0,中文 <0。

AscB(binstr) 适用于二进制数据。AscB 不是返回第一个字符的字符代码,而是返回首字节。

AscW(string)
是为使用 Unicode 字符的 32 位平台提供的。它返回 Unicode (宽型)字符代码,因此可以避免从 ANSI 到 Unicode 的代码转换。它的返回值与 JS 中的 charCodeAt 相同。返回值:英文 >0,中文 >255。

本博客所有文章如无特别注明均为原创。作者:sysdee复制或转载请以超链接形式注明转自 成功志
原文地址《ASC函数返回值是1的问题及asp中Asc、AscB、AscW的用法含义
分享到:更多

相关推荐

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(0)