如何用VB5获取中文WINDOWS95/98中的汉字机内码
编号:QA002239
建立日期: 1999年12月13日 最后修改日期:1999年12月13日
所属类别:
WHQ:
请问如何用VB5获取中文WINDOWS95/98中的汉字机内码?以前在DOS下的QB中用的ASC、MID、CHR$等好像不起作用了。
回答:
我们得从VB处理字符串的方式讲起。QB和早期的VB是采用单字节处理方式(通常也称为ANSI方式),也就说一个英文字母用一个字节表示,一个汉字算两个字节,当然这样就可能出现半个汉字的问题。从VB 4.0起,VB采用了一种新的处理方式,即内部采用Unicode方式,即不论英文字母还是汉字,一律用两个字节表示,但Unicode还不够普及,所以VB只是在其内部完全使用Unicode,而在外部仍转换为人们习惯的ANSI方式,但在字符串处理上与先前的版本有所不同。例如:在中文Windows或英文Windows外挂RichWin 97中,Len("问专家")=3,而在以前的版本或纯英文Windows中Len("问专家")=6。除了Len,Left、Right、Mid、Asc等字符串函数均受此影响。这种处理有时不太方便,但一般不会读入半个汉字。你可以用下面的代码试试:
s = "问专家"
Dim i
For i = 1 To Len(s)
Print Hex(Asc(Mid(s, i, 1)))
Next
运行这段程序你就会发现,Asc函数每次会输出一个汉字(两个字节)的内码。
此问题由李海回答。
| |
|
|
| |
|
|