关于c#4.0:有没有办法检查C#字符串的编码?

Is there a way to check the encoding of a C# string?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Determine a string's encoding in C#

我相信如果我创建一个字符串,它的默认值是utf8,但是如果字符串是在其他地方创建的,并且我想在处理它之前更加安全,并检查它的编码是什么,那么使用string或encoding类,我看不到任何简单的方法可以做到这一点。我是缺少什么,还是C字符串总是utf8,不管什么?


C(well,.net)中的字符串没有编码,实际上…或者,您可以将它们全部视为utf-16,因为它们是一个char值序列,即utf-16代码单元。

但是,通常情况下,当您从字符串转换为二进制形式(例如,向下转换套接字或转换为文件)时,您只需要关心编码。这时,您应该显式地指定编码——字符串本身没有这个概念。

唯一"默认"为utf-8的方面是有大量的.NET API被重载以接受或不接受编码,如果没有指定编码,则使用utf-8。File.ReadAllText就是一个例子。但是,在读取文件之后,"从UTF-8文件读取的文本"和"从Big5文件读取的文本"等没有区别。