VBS字符编码的说明
MSDN文档对AscW的说明是:AscW是为使用Unicode字符的32位平台提供的。它返回Unicode(宽型)字符代码,因此可以避免从ANSI到Unicode的代码转换。
按照参考手册的定义,AscW函数应该返回一个字符的Unicode字符编码,但是直接拿返回的结果来用的话会有潜在的BUG,正如我碰到的。
“魔”字的Unicode编码是39764,测试如下代码
c = AscW("魔") If c > 127 ThenWScript.Echo "Not ASCII" ElseWScript.Echo "ASCII" End If
你认为返回的结果是什么?"Not ASCII"?错!返回的结果是"ASCII"。
这就是潜在的BUG,对某些中文(当然还有其他字符)AscW函数返回的值是负数!如果你的代码拿这个值与一个正数比较大小,逻辑值将是False!
为什么呢?因为AscW的返回值的子类型是Integer,而VBS中Integer的取值范围是从-32768到32767。39764 > 32767,造成了溢出,所以返回负数。
怎样才能得到正确的结果呢?答案把子类型是转化成Long,Long的取值范围是-2,147,483,648到2,147,483,647,不会造成溢出。
WScript.Echo CLng("&H" & Hex(AscW("魔")))
先用Hex函数把AscW的返回值转化成十六进制的字符串,加上VBS中十六进制前缀&H,最后用CLng函数把子类型转化成Long。这样就能得到39764这个正确的Unicode编码值了。
VBS字符编码的说明相关推荐
- java ascii 编码方式_JAVA 的ASCII字符编码一览表
JAVA 的ASCII字符编码一览表 二进制 十进制 十六进制 缩写 可以显示的表示法 名称/意义 0000 0000 0 00 NUL ␀ 空字符(Null) 0000 0001 1 01 SOH ...
- python3 转码的函数_python基础3之文件操作、字符编码解码、函数介绍
内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...
- Qt字符编码,创建中文文件
1.代码文件本身编码: 2.Qt中用于控制读入和写出文件系统时的字符编码由QTextCodec::setCodecForLocale()所决定.一般不用设置,Qt跟系统交互时会根据系统的Locale来 ...
- Java学习总结:45(字符编码)
字符编码 在实际工作中最常见的4种编码如下: GBK.GB2312:中文的国标编码,其中GBK包含简体中文与繁体中文两种,而GB2312只包含简体中文: ISO8859-1:是国际编码,可以描述任何文 ...
- python 字符编码问题
字符编码 一.字符编码的演进 ASCII GB2312 GBK1.0 GB18030 Unicode编码:国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言.跨平台 ...
- 字符编码简介 ANSI Unicode Unicode big endian UTF-8
1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和 1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte) ...
- Java工具类-转换字符编码
package common; /***字符串处理公用类 */ public class DealString {/*** 转换字符编码 由"iso-8859-1"西文转换为简体中 ...
- java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**
原文出处:http://cmsblogs.com/?p=1412 在上篇博文(java中文乱码解决之道(一)-–认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述 ...
- Python字符编码详解
Python字符编码详解 转自http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html Python字符编码详解 本文简单介绍了各种常用的 ...
最新文章
- 程序猿的终点?!!!
- 怎么修改存储路径_Power Query数据位置变了?利用参数轻松解决源文件路径问题...
- kali 安装volatility_kali对Windows内存在线取证
- java ndk 在哪_NDK简介
- 网站常见漏洞-- XSS攻击
- 前端学习(3180):ant-design介绍3
- 安装Cocoapods,以及其中出现的问题
- 图解算法系列笔记(三)
- composer.install
- python常用的一些东西——sys、os等(转)
- 懒人工作源码分析(1)
- java浮点数的精确计算_Java 浮点数计算精度丢失问题?
- com.lowagie.text-2.1.7jar
- 单位元转换万元怎么转_excel教程:将单位为元的excel数值转换成单位为万元的数值...
- 看完《一九四二》的感受--也写给正在找工作时迷茫的你
- 如何用eclipse读取.txt文件
- Google到底有多强大
- git push origin HEAD
- 计算机百科丨芯片发展历经五次变革,下一个十年属于 AI
- unitTest单元测试