专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > VB Dotnet

VB.Net Byte数组转换有关问题(二进制文件)

发布时间:2011-06-23 16:02:41 文章来源:www.iduyao.cn 采编人员:星星草
VB.Net Byte数组转换问题(二进制文件)
刚开始用.NET~有些地方不太明白~~希望高手指点下~~
描述:

在File_Byte中包含StrText的情况下

File_Byte() As Byte
StrText As String
Sit As Integer

VB 6:
Sit = InStr(StrConv(File_Byte, vbUnicode), StrText)
功能实现:
File_Byte为一个二进制文件流,转换成Unicode后在里面查找StrText后将位置给Sit

.Net:
Sit = InStr(System.Text.UnicodeEncoding.Unicode.GetString(File_Byte), StrText)

问题描述:
.Net上转换后并不是Unicode~~得到的只有大概4字节的乱码~
希望能够在File_Byte中将StrText找到~~
或者能够转换成Unicode~~

谢谢大家~~~

------解决方案--------------------
Dim txt As String = ""
Dim b As New MemoryStream
b.Read(File_Byte, 0, File_Byte.Length)
Dim a As New BinaryWriter(b)
a.Write(txt)
Sit = InStr(txt, StrText)
这样试一试,因为我这没有数据,所以不清楚对不对
------解决方案--------------------
关于转换你可以尝试:
System.Text.Encoding.GetEncoding("gb2312").GetString(File_Byte)

System.Text.Encoding.GetEncoding("utf-7").GetString(File_Byte)

System.Text.Encoding.GetEncoding("utf-8").GetString(File_Byte)

System.Text.Encoding.GetEncoding("utf-16").GetString(File_Byte)

System.Text.Encoding.GetEncoding("utf-32").GetString(File_Byte)

System.Text.Encoding.GetEncoding("utf-32BE").GetString(File_Byte)

System.Text.Encoding.GetEncoding("UnicodeFFFE").GetString(File_Byte)

我感觉。。第一个就可以,是直接转化成简体中文(已经包括数字,英文字母和常见符号),如果不行还是试试第3个utf-8。。

------解决方案--------------------
Dim File_Byte() As Byte
Dim StrText As String
Dim Sit As Integer
File_Byte = System.Text.Encoding.Default.GetBytes("1231123456789")
StrText = "9"
Sit = InStr(System.Text.Encoding.Default.GetChars(File_Byte), StrText)
MsgBox(Sit)
------解决方案--------------------
用序列化试试
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: