有什么不同:
var content = "Some string";
streamWriter.Write(content, Encoding.UTF8);
VS
var content = "Some string";
streamWriter.Write(content);
根据微软documentation of StreamWriter,Write
没有这样的过载,它采用字符串和编码。如果要显式指定编码,则需要在创建时将其传递给StreamWriter的构造函数重载之一。
但是,在某些情况下,您可能会遇到重载方法,一个接受编码而另一个不接受编码。在回答您的问题时,区别在于第一个选项允许您明确在序列化字符串时使用的编码,第二个选项使用默认编码。
如果你总是在C#代码中编码和解码,那么你选择哪一个并不重要。您可以查看每个编码的优缺点,并决定使用特定的编码,或者您可以让C#为您选择一个。
如果你需要用C#编码,并用另一种语言解码(反之亦然),那么你肯定需要明确你使用的是哪种编码。