如何判断一个文本文件的编码方式呢?

fhawk 2005-01-06 02:35:29
现有几个文本文件,各个文件的编码方式是不确定的,有的是Ascii,有的是unicode等等,请如一下,有什么方法可以判断这些文件的编码方式呢?
...全文
3336 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fhawk 2005-01-20
  • 打赏
  • 举报
回复
后来发现,这种方法只会对一些文本文件有效。有些Unicode文件,就不采用这种方式。也就是有些文件采用的是混合编码,不知这是为何?如何判断这样的文本文件呢?
谢谢!
fhawk 2005-01-06
  • 打赏
  • 举报
回复
收到,非常谢谢!
marvelstack 2005-01-06
  • 打赏
  • 举报
回复
需要判断文件流的前三个字节来判断编码。
或者使用
StreamReader sr = new StreamReader("filepath", true/*detectEncodingFromByteOrderMarks*/);
通常,当一个软件打开一个文本时,它要做的第一件事是决定这个文本究竟是使用哪种字
符集的哪种编码保存的。软件有几种途径来决定文本的字符集和编码,
最标准的途径是检测文本最开头的几个字节,楼主可以以不同编码保存后研究一下各种格式看看.比如

开头字节 Charset/encoding

EF BB BF UTF-8

FE FF UTF-16/UCS-2, little endian

FF FE UTF-16/UCS-2, big endian

FF FE 00 00 UTF-32/UCS-4, little endian.

00 00 FE FF UTF-32/UCS-4, big-endian.
chenyuming2004 2005-01-06
  • 打赏
  • 举报
回复
StreamReader sr=new StreamReader(@"F:\cym\temp\1.txt");
sr.CurrentEncoding //返回编码
AReed 2005-01-06
  • 打赏
  • 举报
回复
好像文本文件里是没有存放该文本的编码方式的,只是在读出的时候指定按什么方式来读出来,所以可能得不到一个文本文件的写入的时的编码方式.

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧