读书人

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

发布时间: 2011-12-08 21:33:54 作者: rapoo

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)
[解决办法]
用序列化试试

读书人网 >VB Dotnet

热点推荐