易截截图软件、单文件、免安装、纯绿色、仅160KB

VB如何返回Unicode编码值

在VB中如何返回字符的Unicode编码值,包括中文字符。
为什么我用AscW()函数取中文的Unicode值有些为正数,有些却为负数呢?
正常,因为AscW返回的Integer型,本来就是2字节的,分正负的啊,你也可
Hex$(AscW())这样以十六进制格式查看的

Unicode vs Ansi 

Visual Basic 32-bit 版本的字串处理采用 Unicode,也就是说字串在 VB 内部是以
Unicode 的格式来存放。

何谓 Unicode?简单的说,就是每一个字元都是以 2-byte 的型式表示,而每个「实
体字元」就是一个「字元」。因此,

Len("大家好")
Len("abc")

所传回的值都是 3,因为「大」和「a」都是一个字元。

但是这对一些中文字串处理,例如纯文字的资料档,却是一个大灾难,因为你必须以
byte 来定位每个字元,可是 Unicode 却把一切的处理全搞砸了。例如:

Len("Good Morning") 传回 12,而
Len("今天天气很好") 传回 6

对初学者而言,好不容易能使用 VB 来写程式已经是件了不起的事了,却马上在中文
处理上挨了一记闷棍,所受到的打击实在不小。但是不要怕,事实上只要再多了解一
些指令,就可以把中文处理的问题解决了。

是什麽指令呢?最重要的莫过於 StrConv 了。StrConv 函式的语法为:

StrConv(待转换字串, 转换格式)

其中转换格式在这里用到的是:

vbUnicode 将 Ansi 字串转换为 Unicode
vbfromUnicode 将 Unicode 字串转换为 Ansi

将字串转成 Ansi 之後,所有的字串处理指令都要加个 B,例如:LeftB, RightB,
MidB, ChrB, InstrB, LenB, InputB 等。例用这些指令来处理就行了。



相关问答:

vb - VB / 基础类

在vb中如何读取Word内容(包含表格,图片,等)
竟然不是zero。

不知道怎么实现的不要说话

这个只能读文本,
VB code:
Private Sub Command1_Click()
Dim WordApp As Object
Set WordApp = CreateObject(& ......

vb读取用word转换成的xml里的数据 - VB / 基础类

Private Sub Command1_Click()
Dim MyString() As String
Open "a.xml" For Binary As #1 ' 打开刚创建的文件。
ReDim MyString(LOF(1) - 1)
  Put #1, , MyRecord ' 读入所有字符到变量中 ......

vb操作excel - VB / 基础类

问题:
现在Access数据库中有两张表TableA和TableB
TableA中有记录如下:
字段1(Name) 字段2(Num)
  A 3
  A 4
  B 6
  ... ......

vb生成EXE - VB / 基础类

form1中有text1-8, 和command1 
text8中为程序代码(生成窗体为form2(已做好))
单击command1后将text2中的代码生成EXE到d:\ 并且text1-7分别对应
产品名 公司名 合法版权 合法商标 文件描述 注释 标题 ......

中山的VB程序员进来看一下 - VB / 非技术类

刚建了一个群:中山VB编程(105787219)
有在中山及中山周边的程序员请加入.大家一起探讨问题.合作项目.
尽管俺不是中山的,也进来蹭分……

佛山的行吗,广州的行吗?

友情支持
回复内容太短了! 

帮顶 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号