vb 中如何将string转化为byte[]数组
Dimimagebytes()AsByteimagebytes=StrConv(CByte(dr.Rows(0).Item("Content")),vb)...
Dim imagebytes() As Byte
imagebytes = StrConv(CByte(dr.Rows(0).Item("Content")), vb) 展开
imagebytes = StrConv(CByte(dr.Rows(0).Item("Content")), vb) 展开
展开全部
如果string包含的是二进制数据或者是ANSI编码格式的文本,直接赋值给byte数组变量即可(是的,就是这么简单):
imagebytes = dr.Rows(0).Item("Content")
如果是Unicode编码格式的文本(这是VB内部默认的编码格式),则需要转换一下:
imagebytes = StrConv(dr.Rows(0).Item("Content"), vbFromUnicode)
原理很简单,字节数组在内存中的排列方式与字符串是完全一样的(一个字节就是一个字符),所以这两种数据类型其实是可以互换的,唯一要注意的就是编码问题,Unicode编码格式下,所有字符(包括半角的字母、数字、符号以及全角的汉字等)都是占用两个字节的,所以需要转换为原始的ANSI格式(半角字符占用一个字节,全角字符占用两个字节)。
imagebytes = dr.Rows(0).Item("Content")
如果是Unicode编码格式的文本(这是VB内部默认的编码格式),则需要转换一下:
imagebytes = StrConv(dr.Rows(0).Item("Content"), vbFromUnicode)
原理很简单,字节数组在内存中的排列方式与字符串是完全一样的(一个字节就是一个字符),所以这两种数据类型其实是可以互换的,唯一要注意的就是编码问题,Unicode编码格式下,所有字符(包括半角的字母、数字、符号以及全角的汉字等)都是占用两个字节的,所以需要转换为原始的ANSI格式(半角字符占用一个字节,全角字符占用两个字节)。
追问
若是0x之类的16进制呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询