VB 返回ASC码出错

来源:百度知道 编辑:UC知道 时间:2024/05/07 02:00:11
用函数
Asc("")返回某个字符的ASC码时为0,但这个字符的ASC码实际不为0,请问是什么原因出错呢,有其它相同功能的函数能用吗
我查到不能正确返回的那个字符ASC值是163,但是不知道为什么用Asc()函数不能返回163

Asc 函数
返回一个 Integer,代表字符串中首字母的字符代码。
语法
Asc(string)
必要的 string 参数可以是任何有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。
说明
在非 DBCS 系统下,返回值范围为 0 – 255 。在 DBCS 系统下,则为 -32768 – 32767。
注意 AscB 函数作用于包含在字符串中的字节数据,AscB 返回第一个字节的字符代码,而非字符的字符代码。AscW 函数返回 Unicode 字符代码,若平台不支持 Unicode,则与 Asc 函数功能相同。

Asc("")就是返回0呀""是空字符,返回0
asc("a")试试

你要输出的是"£"这符吧

虽然标准 ASCII 码是 7 位编码,但由于计算机基本处理单位为字节( 1byte = 8bit ),所以一般仍以一个字节来存放一个 ASCII 字符。每一个字节中多余出来的一位(最高位)在计算机内部通常保持为 0 (在数据传输时可用作奇偶校验位)。
由于标准 ASCII 字符集字符数目有限,在实际应用中往往无法满足要求。为此,国际标准化组织又制定了 ISO2022 标准,它规定了在保持与 ISO646 兼容的前提下将 ASCII 字符集扩充为 8 位代码的统一方法。 ISO 陆续制定了一批适用于不同地区的扩充 ASCII 字符集,每种扩充 ASCII 字符集分别可以扩充 128 个字符,这些扩充字符的编码均为高位为 1 的 8 位代码(即十进制数 128~255 ),称为扩展 ASCII 码。下表展示的是最流行的一套扩展 ASCII 字符集和编码:

但是在中文版VB中 Asc("£"),它会吧£作为汉字处理,也就是GB2312码,输出为-24086(&HA1EA)

就是当一个字符在0到127时是单字符,128-255时,该字符和其后的一个字符合成双字符。因此才会有,Asc(Chr$(163))=0,因为缺少一个字符!
单纯的AS