本文介绍了C#:有什么方法来发现什么字符集编码文件正在使用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有什么方法可以发现文件使用什么字符集编码?

Is there any way to discover what charset encoding a file is using?

推荐答案

以在文本文件的开头查找。 (该Blob更一般地表示所使用的字符编码的字节顺序,但也表示编码 - 例如UTF8,UTF16,UTF32)。不幸的是,这种方法只适用于基于Unicode的编码,并且在此之前没有什么(为此,必须使用不太可靠的方法)。

The only way to reliably do this is to look for byte order marks at the start of the text file. (This blob more generally represents the endianness of character encoding used, but also the encoding - e.g. UTF8, UTF16, UTF32). Unfortunately, this method only works for Unicode-based encodings, and nothing before that (for which much less reliable methods must be used).

type supports检测这些标记以确定编码 - 您只需要向参数传递一个标志:

The StreamReader type supports detecting these marks to determine the encoding - you simply need to pass a flag to the parameter as such:

new System.IO.StreamReader("path", true)

然后可以检查 stremReader.CurrentEncoding 以确定文件使用的编码。注意,如果不存在字节编码标记,则 CurrentEncoding 将默认为 Encoding.Default

You can then check the value of stremReader.CurrentEncoding to determine the encoding used by the file. Note however that if no byte encoding marks exist, then CurrentEncoding will default to Encoding.Default.

这篇关于C#:有什么方法来发现什么字符集编码文件正在使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-23 18:49