网上广泛流传的版本某些汉字此行会出错:GetPy4Utf = Mid(strCHSfirstPY,(ascw(char)-19967),1) 因为AscW的返回值的子类型是Integer,而VBS中Integer的取值范围是从-32768到32767。某些汉字的ascw值 > 32767,造成了溢出,所以返回负数。怎样才能得到正确的结果呢?答案把子类型是转化成Long,Long的取值范围是-2,147,483,648到2,147,483,647,不会造成溢出。CLng(“&H” & Hex(AscW(“防”)))先用Hex函数把AscW的返回值转化成十六进制的字符串,加上VBS中十六进制前缀&H,最后用CLng函数把子类型转化成Long。function GetPy4utf(char) if char=null or len(trim(char))=0 then exit function dim strCHSfirstPY strCHSfirstPY ="YDYQSXMWZSSXJBYMGCCZQPSSQBYCDSCDQLDYLYBSSJGYZZJJFKCCLZDHWDWZJLJPFYYNWJJTMYHZWZHFLZPPQHGSCYYYNJQYXXGJ"_ &"HHSDSJNKKTMOMLCRXYPSNQSE
...
继续阅读
(11)