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

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

发布时间:2011-06-23 15:22:00 文章来源:www.iduyao.cn 采编人员:星星草
读取.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的重载
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: