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