Vb6 vbFromUnicode是什么意思?
我正在浏览一些旧的VB6代码,遇到如下语句-Vb6 vbFromUnicode是什么意思?,vb6,Vb6,我正在浏览一些旧的VB6代码,遇到如下语句- TempArray() = StrConv(PassedString, vbFromUnicode) 这意味着什么?它接受一个unicode字符串(VB中的任何字符串都是unicode),并使用非unicode程序的当前系统代码页将其转换为字节数组 如果是单字节代码页,则每个字符将有一个字节(例如英语和西欧1252) 如果是多字节代码页(例如简体中文),则每个字符可能有多个字节 在该代码页中找不到的字符将替换为问号(?)。+1。但在多字节
TempArray() = StrConv(PassedString, vbFromUnicode)
这意味着什么?它接受一个unicode字符串(VB中的任何字符串都是unicode),并使用非unicode程序的当前系统代码页将其转换为字节数组
- 如果是单字节代码页,则每个字符将有一个字节(例如英语和西欧1252)
- 如果是多字节代码页(例如简体中文),则每个字符可能有多个字节
在该代码页中找不到的字符将替换为问号(
?
)。+1。但在多字节代码页上,每个字符将有多个字节,例如中文、韩文。@MarkJ无法将其复制为:Dim b()字节:b=StrConv(ChrW$(&H818A&),vbfromfromunicode):MsgBox UBound(b)-LBound(b)+1
,结果是1
@MarkJ否,这是从charmap中随机选取的一个中文字符。啊,我现在明白你的意思了。我对你的理解正好相反。不,我从来没有将多字节代码页作为非Unicode程序的语言。也许你是对的。不是VB6中的所有字符串都是Unicode。这就是为什么我们有LeftB$()、AscB()等函数。但是,如果有人问“vbFromUnicode是什么意思”这样的基本问题,我们可能不需要去那里。@GSerg一点也不正确。在VB6字符串中创建和使用8位ANSI、ASCII或任何您希望的编码是完全可能的。Unicode正是您通常看到的使用默认操作的情况,这使得它更加流行。“B”函数用于对这样的8位字符串值进行操作,其中许多函数甚至可以对字节数组进行操作。