Geek@Paris

全国二级VB第71页例题

2006-08-06
全国二级VB第71页例题
1 Private Sub Command1_Click()
2 Dim tempStr,newStr As String
3   tempStr="BASIC程序设计"
4   Print"tempStr=";tempStr
5   newStr=StrConv(tempStr,vbFromUnicode)
6   Print
7   Print"执行newStr=StrConv(tempStr,vbFromUnicode)后:"
8   Print"newStr=";newStr
9   Print"LenB(newStr)=";LenB(newStr)
10   Print"Len(newStr)=";Len(newStr)
11   Print
12   newStr=StrConv(newStr,vbUnicode)
13   Print"执行newStr=StrConv(newStr,vbUnicode)后:"
14   Print"newStr=";newStr
15   Print"LenB(newStr)=";LenB(newStr)
16   Print"Len(newStr)=";Len(newStr)
17 End Sub
 
首先,西方文字编码是单字节编码,一个字节即一个byte,是8个bit,可以表示一个字母或者运算符号数字什么的。
中国日本韩国的文字编码都是双字节编码,因为字多嘛,仅仅8位是只能表示2的8次方个字,就是256。双字节编码就可以达到2的16次方种组合,65536个字。
ANSI编码是单字节的,UniCode是双字节的。将中文这种双字节的编码转成单字节编码后,就会变得不认识了。同样,把单字节编码的英文转成双字节,就会显示出很多乱七八糟的汉字什么的。
 
这个程序解释如下

Private Sub Command1_Click()

Dim tempStr,newStr As String 定义了字符串变量newStrtempStr
   tempStr="BASIC程序设计" 赋值给字符串tempStr值为“BASIC程序设计
   Print"tempStr=";tempStr
输出字符串“tempStr=”,再输出tempStr这个变量的值
   newStr=StrConv(tempStr,vbFromUnicode) StrConv(tempStr,vbFromUnicode)这个函数将temoStr转换成ANSI格式,并将转换后的值赋值给newStr
   Print 输出一个空行
   Print"执行newStr=StrConv(tempStr,vbFromUnicode):"输出字符串执行newStr=StrConv(tempStr,vbFromUnicode):”
   Print"newStr=";newStr
输出字符串“newStr=”,再输出newStr这个变量的值
   Print"LenB(newStr)=";LenB(newStr)输出字符串“LenB(newStr)=”,再输出通过函数LenB(newStr)计算得出的值。这个函数将字符看作ANSI的单字节编码处理,一个中文字当两个字符看。
   Print"Len(newStr)=";Len(newStr)
输出字符串“Len(newStr)”,再输出通过函数Len(newStr)计算得出的值。这个函数支持UniCode格式,一个中文字当一个字

Author:admin | Categories:IT | Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *


Clickcha - The One-Click Captcha