Encoding 使用法语字符和编码创建文件

Encoding 使用法语字符和编码创建文件,encoding,utf-8,character-encoding,ansi,Encoding,Utf 8,Character Encoding,Ansi,嗨,我正在创建一个这样的文件 FileStream temp = File.Create( this.FileName ); this.Writer = new StreamWriter( this.Stream ); this.Writer.WriteLine( strMessage ); 然后像这样将数据放入文件中 FileStream temp = File.Create( this.FileName ); this.Writer = new StreamWriter( this.S

嗨,我正在创建一个这样的文件

FileStream temp = File.Create( this.FileName );
this.Writer = new StreamWriter( this.Stream );
this.Writer.WriteLine( strMessage );
然后像这样将数据放入文件中

FileStream temp = File.Create( this.FileName );
this.Writer = new StreamWriter( this.Stream );
this.Writer.WriteLine( strMessage );
该代码封装在类层次结构中,但这是它的主要部分

我的问题是这个。MSDN表示,以这种方式创建文件的默认编码是UTF8。当我写一个法语字符,比如éTextpad,它会将文件解释为UTF8文件,但notepad++会说它是ANSI的UTF8文件,或者可能是ANSI的UTF8文件。当我以同样的方式创建一个没有法语字符的文件时,textpad和notepad++都将该文件作为ansi文件读取,即使根据msdn,它仍然应该是utf 8文件

哪个程序应该被信任。Notepad++或textpad-Notepad++似乎更为一致,但仍然与MSDN所说的相反。我的问题是,我们创建的文件被发送到另一家公司,这取决于是否有法语字符,编码似乎在不断变化

还是有更好的方法来确定文件的编码。我读过字节顺序标记和前导码,但据我所知,它们都不一定存在


我们最初认为我们正在构建的所有文件都是ansi。另外请注意,ansi和utf8都应该适当地处理法语字符,因为字符是这两个字符集的一部分。

据我所知,ansi字符编码是ascii us的另一个名称


如果文件中没有不在ascii字符集中的字符,则该文件是有效的ascii和有效的utf8,无法区分它们。因此,您的程序可以将其编写为utf8,任何其他程序都可以正确地将其视为ascii ansi,就像将其视为utf8一样。

这是许多so问题的重复。我今天的投票没有了;你真幸运!