首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

读取.dat文件,得到的文件流乱码。请帮忙看一下,该怎么解决

2012-01-26 
读取.dat文件,得到的文件流乱码。请帮忙看一下.dat文件,不知道里面数据排列是是怎么样的,也不清楚是二进制

读取.dat文件,得到的文件流乱码。请帮忙看一下
.dat文件,不知道里面数据排列是是怎么样的,也不清楚是二进制数据还是十六进制数据 
用file.open打开,但是读取得都是乱码的字符 
代码如下: 
Dim fstream As FileStream = File.Open("..\filename.dat", FileMode.Open) 
Dim arr(1024) As Byte 
Dim strSave(1024) As Char 
Dim strDecoder As System.Text.Decoder = System.Text.ASCIIEncoding.ASCII.GetDecoder() 
Dim fLen As Integer 
  If fstream.CanRead Then 
  fLen = fstream.Length 
  ReDim arr(fLen) 
  ReDim strSave(fLen) 
  fstream.Read(arr, 0, arr.Length) 
  strDecoder.GetChars(arr, 0, fLen, strSave, 0) 
  fstream.Close() 
  End If 
请帮忙看一下

[解决办法]
用notepad打开也是乱码吗?如果是那就是该文件格式不识别,若不是,则是你打开文件时未设定正确的编码
[解决办法]

探讨
用notepad打开也是乱码吗?如果是那就是该文件格式不识别,若不是,则是你打开文件时未设定正确的编码

[解决办法]
引用楼主 gouhan02 的帖子:
.dat文件,不知道里面数据排列是是怎么样的,也不清楚是二进制数据还是十六进制数据


[解决办法]
如果是二进制文件(非文本),那就与编码没有任何关系
你需要自己用程序把二进制内容转换为你需要的内容,比如十六进制字符串等~
[解决办法]
确定是什么文件先!
如果是纯文本,可以用StreamReader读
构造函数中有传入Encoding的重载
[解决办法]
试下System.Text.Encoding.UTF8.GetString(arr))或System.Text.Encoding.Unicode.GetString(arr))
[解决办法]
另外要看.DAT出现乱码是编码转换不正确还是因为数据加密导致的,如果是文件是加密的数据文件,不管用什么方式都还是乱码,除非知道如何解密才行。
[解决办法]
解决方案:

第一步:StreamReader读 

第二步:构造函数中有传入Encoding的重载

热点排行