UTF-8,UTF-16和UTF-32有什么区别?
我知道他们都将存储Unicode,并且每个都使用不同的字节数来表示字符.选择一个优于另一个是否有优势?
我尝试检测我的文件中使用了哪个字符编码.
我尝试使用此代码来获取标准编码
public static Encoding GetFileEncoding(string srcFile)
{
// *** Use Default of Encoding.Default (Ansi CodePage)
Encoding enc = Encoding.Default;
// *** Detect byte order mark if any - otherwise assume default
byte[] buffer = new byte[5];
FileStream file = new FileStream(srcFile, FileMode.Open);
file.Read(buffer, 0, 5);
file.Close();
if (buffer[0] == 0xef && buffer[1] == 0xbb && buffer[2] == 0xbf)
enc = Encoding.UTF8;
else if (buffer[0] == 0xfe && buffer[1] == 0xff)
enc = Encoding.Unicode;
else if (buffer[0] == 0 && …Run Code Online (Sandbox Code Playgroud) 好吧,我需要找出我在某个目录中找到的哪些文件是UTF8编码的ANSI编码,以便在我稍后决定的其他内容中更改编码.我的问题是..如何判断文件是UTF8还是ANSI编码?这两种编码实际上都在我的文件中.
如何使用FileStream测试我在C#中打开的文件是否是"文本类型"文件?我希望我的程序打开任何基于文本的文件,例如.txt,.html等.
但不要打开.doc或.pdf或.exe等等.