base64编码是将一个8位字节序列拆散为6位的片段,并为每个6位的片段分配一个字符。
6位字节序列转化为对应的10进制值,然后根据下表找到对应的字符。
由于二进制序列流有时不能正好平均分成6位的块,在这种情况下,就在二进制序列末尾填充位数,使二进制序列的长度成为24的倍数(6和[……]
关注和分享Excel以及Office系列软件的方方面面,致力于提高中国的办公软件的使用水平
在文章如何在vba中实现字符的Unicode编码与ANSI编码相互转换?中介绍了利用vba内置函数StrConv 实现字符的Unicode编码与ANSI编码的相互转换。
今天,介绍利用api函数WideCharToMultiByte和MultiByteToWideChar 实现字符的unic[……]
Unicode编码字符指的是用两个字节存储一个字符。
在vba中字符就是用Unicode编码存储的,并且是按照Little-Endian存储的。
如运行以下代码,将在立即窗户中显示11 62。
1 2 3 4 5 6 7 8 9 |
Sub QQ1722187970() Dim arr() As Byte Dim s As String s = "我" arr = s For i = 0 To UBound(arr) Debug.Print VBA.Hex(arr(i)) Next i End Sub |
字符“我”在VBA中第[……]
在了解如何用vba判断一个文本文件是以什么编码形式保存之前,我们先来了解下字节序的概念。
比如一个中文字符“保”的unicode编码为4FDD,在存入到计算机时,需要用2个字节,如果第一个字节存4F,第二个字节存DD,那么它的字节序就是Big Endian。如果第一个字节存DD,第二个字节存4[……]
Bit(位),又名比特,是计算机中最小的存储单位。
由于计算机内部都是以二进制存储的,所以1个位只能存储0或者1,也就是只能存储两种状态。
如果我们规定用二进制0表示“是”,用二进制1表示“否”,那么就定义了“是否”这两个字符的编码,也就是字符的编码就是字符的二进制表示形式。在同样的编码[……]
在微软的官方文档中有这么一句话:
Strings in Visual Basic are stored as BSTR’s
在vba中字符串是以BSTR类型存储的。
BSTR的C++声明如下:
1 2 3 |
typedef WCHAR OLECHAR; typedef OLECHAR* BSTR; typedef BSTR* LPBSTR; |
从声明可以看出BS[……]
Unicode只有一个字符集,中、日、韩的三种文字占用了Unicode中0x3000到0x9FFF的部分 Unicode目前普遍采用的是UCS-2,它用两个字节来编码一个字符, 比如汉字”经”的编码是0x7ECF,注意字符码一般用十六进制来 表示,为了与十进制区分,十六进制以0x开头,0x7ECF转[……]