在VB2005中,读取文本文件中的文本可以采用的方法是System.IO.File.ReadAllText,这个函数有两个参数,一个是文件的文件名(包含路径);一个是文本的编码,如果省略,采用系统默认的编码。可是,一般的文本编码有ANSI、Unicode、UTF8等。如果编码的格式选择不对,则读出来是一段乱码。

  笔者依照网上的资料,编写一个函数,能自动根据判别文本的编码格式,首先是将文本文件的数据读到字节数组中,再判别文本的编码格式,最后将字节数组转化为文本。

  依据字节流,前三个字节标识着这个文本的编码方式。那么依据这三个字节的值,用不同的编码来解析这个字节流。这是下面这段代码的核心内容。

  代码格式修正于2012年1月5日

Public Shared Function ReturnEncoding(ByVal tB() As Byte) As System.Text.Encoding
Dim tB1 As Byte, tB2 As Byte, tB3 As Byte, tB4 As Byte
  If tB.Length < 2 Then Return Nothing
  tB1 = tB(0)
tB2 = tB(1)
If tB.Length >= 3 Then tB3 = tB(2)
If tB.Length >= 4 Then tB4 = tB(3)
If (tB1 = &HFE AndAlso tB2 = &HFF) Then Return System.Text.Encoding.BigEndianUnicode
If (tB1 = &HFF AndAlso tB2 = &HFE AndAlso tB3 <> &HFF) Then Return System.Text.Encoding.Unicode
If (tB1 = &HEF AndAlso tB2 = &HBB AndAlso tB3 = &HBF) Then Return System.Text.Encoding.UTF8
Return System.Text.Encoding.Default
End Function
    本文转自万仓一黍博客园博客,原文链接:http://www.cnblogs.com/grenet/archive/2009/12/11/1621602.html,如需转载请自行联系原作者

自动识别文字的编码以及读取所有文本——VB2005相关推荐

  1. java中unicode显示乱码_Java 已知Java系统编码是GBK,jtextarea从一编码为Unicode的文本中读取数据,出现乱码,怎么正常显示?...

    Java 已知Java系统编码是GBK,jtextarea从一编码为Unicode的文本中读取数据,出现乱码,怎么正常显示? 关注:159  答案:2  mip版 解决时间 2021-02-03 12 ...

  2. html文本编码声明,黑帽seo技术之文字HTML编码变体的实现解密

    由于跟上一篇文章有的手段接近,因此这里就一起写的话比较容易理解.我们先来上图: 可以看到,跟昨天差不多的黑帽关键词哈,这次用搜狗的,因为目前搜狗对这类站点似乎比较友好?这都不是重点,这几个站看起来像是 ...

  3. 【转】为什么不能使用字符流读取非文本的二进制文件?

    读取文件 刚学Java的IO流部分时,书上说只能使用字节流去读取图片.视频等非文本二进制文件,不能使用字符流,否则文件会损坏.所以我就一直记住这一点了,但是为什么不能使用,这一直是我的一个疑惑.今天, ...

  4. OCR -上传图片 自动识别文字并填充

    上传证件照片,自动识别证件上的文字信息, 并填充在适当的位置 !!不是广告!! 这种技术叫 OCR文字识别 OCR(optical character recognition)文字识别是指电子设备(例 ...

  5. 【转载】C#中StreamReader读取中文文本出现乱码的解决方法

    首先O(∩_∩)O谢谢一品梅分享了自己的经验,这是他的blog原文地址 http://www.cnblogs.com/onlyendure/archive/2008/03/25/1121247.htm ...

  6. python怎么重命名word文件,Python读取word文本操作详解

    本文研究的主要问题时Python读取word文本操作,分享了相关概念和实现代码,具体如下. 一,docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的.也就 ...

  7. 分析:windows下cmd默认的编码是ASCII编码 ,windows的中文环境下编码是GBK 方法一:在保存输出流保存的时候做一个对文字GBK编码,在输出到文件 如下 [python] view

    分析:windows下cmd默认的编码是ASCII编码 ,windows的中文环境下编码是GBK 方法一:在保存输出流保存的时候做一个对文字GBK编码,在输出到文件 如下 [python] view ...

  8. office是python打开方式_Python读取word文本操作详解

    本文研究的主要问题时Python读取word文本操作,分享了相关概念和实现代码,具体如下. 一,docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的.也就 ...

  9. java 读取txt乱码_java 逐行读取txt文本如何解决中文乱码

    java读取txt文本中如含有中文,可能会出现乱码,解决方案是: 1.要统一编码,java工程的编码,txt文本编码,java工程中的java文本编码都统一为utf-8: 2.利用 InputStre ...

最新文章

  1. 四、分析HelloWorld程序,开始学习Java运算符
  2. java -jar 启动程序/设置classpath
  3. xgboost相比传统gbdt有何不同?xgboost为什么快?xgboost如何支持并行?
  4. postman和部署在 SAP 云平台上的SAP UI5应用发送同样的HTTP请求,为何前者成功,后者失败?
  5. 分享轮子-flutter下拉刷新上拉加载
  6. 想学习java,如果学不会java怎么办?
  7. 你最隐秘的性格在哪?
  8. win 卸载mysql5.6_mysql5.6 win 安装 卸载总结
  9. 【图像处理】MATLAB:频域处理
  10. 乔布斯斯坦福大学演讲pdf_演讲能力训练方法amp;优秀的演讲视频
  11. JavaScript 实现Map效果
  12. 漏洞防御方案_越权漏洞原理及防御方案
  13. “AI+遥感”产品研究现状
  14. 枚举题——四大明湖排序(本菜优化了一下)
  15. .net core linux 串口,.Net Core 跨平台应用使用串口、串口通信 ,可能出现的问题、更简洁的实现方法...
  16. 世界500强企业面试经验分享
  17. javaweb--请求转发
  18. 机器学习:训练集和测试集
  19. CSS的border属性绘制简单三角形、边框三角形
  20. js 单击、双击、连续多次点击

热门文章

  1. python导入txt文件并绘图-Python实现读取txt文件并画三维图简单代码示例
  2. python爬虫实例100-Python 练习实例1
  3. python小项目-python 的一些小项目
  4. LeetCode Self Crossing(判断是否相交)
  5. windows下netstat的使用
  6. TimePicker的使用
  7. Swaks - SMTP界的瑞士军刀
  8. P2831 愤怒的小鸟
  9. 大龄屌丝自学笔记--Java零基础到菜鸟--001
  10. 17. javacript高级程序设计-错误处理与调试