Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何在Visual Basic中将字符串转换为字节_Vba - Fatal编程技术网

Vba 如何在Visual Basic中将字符串转换为字节

Vba 如何在Visual Basic中将字符串转换为字节,vba,Vba,我正在尝试模拟密码学中的一个算法,我需要将0和1的字符串转换回一个单词。例子: 我有:01011110010101101100000110110000101101 我已将其拆分为字符串数组: 0101111000101 每个成员有7个字符。我想得到一个0101111在UTF8中表示的字母?我该怎么做 我尝试了CType(“0010101”,Byte),但失败了。这样我可以通过max 111。 帮助://p>UTF-8是8位的,而那些仅仅是7位。你是说7位ASCII码吗 在这种情况下,您可以: F

我正在尝试模拟密码学中的一个算法,我需要将0和1的字符串转换回一个单词。例子: 我有:01011110010101101100000110110000101101 我已将其拆分为字符串数组: 0101111000101

每个成员有7个字符。我想得到一个0101111在UTF8中表示的字母?我该怎么做

我尝试了CType(“0010101”,Byte),但失败了。这样我可以通过max 111。
帮助://p>UTF-8是8位的,而那些仅仅是7位。你是说7位ASCII码吗

在这种情况下,您可以:

Function BinToStr(binStr As String) As String

    Dim i As Long

    For i = 0 To (Len(binStr) / 7) - 1
        [A1] = CLng(Mid(binStr, i * 7 + 1, 7))
        BinToStr = BinToStr & Chr([BIN2DEC(A1)])
    Next
End Function

如果这不是您要找的,请告诉我。

呃。。。“字节不应该是8位而不是7位吗?”DanielCook说,这可能不太合适。具有任意7位模式(0 msb)的每个字节都是有效的UTF-8编码,每个字符一个字节。对于任意8位模式,情况并非如此。一个可以使用的字符集是CP437。值得一提的是,有了VB.NET和低效的LINQ,我得到了zT␅6倍。直到后来我才注意到[vba]。方括号
[
]
有什么作用?@ja72内置在Excel vba中,可以快速访问单元格引用和函数。他甚至可能没有要求VBA,他可能是指VB.NET,在这种情况下,[A1]将被替换为一个临时变量,BIN2DEC函数必须来自VB.NET库。