将输入文件或流转换为UTF8并检测它是否为UTF8(asp.net)

时间:2013-08-26 08:02:52

标签: c# asp.net utf-8

C#/ asp.net中执行以下操作的最佳方法是什么: - 检测文件是否可靠地是UTF8; - 以编程方式将输入流或磁盘上的文件转换为UTF8。

干杯Askar

1 个答案:

答案 0 :(得分:3)

要检查流是否为UTF8,请参阅:http://utf8checker.codeplex.com/

要转换它,您可以使用StreamReader:

new StreamReader(stream, Encoding.UTF8)) 

事实上,使用这个构造函数会阻止您进行上一次检查,您只需使用它即可。

MSDN:

  

字符编码由encoding参数设置,并且   缓冲区大小设置为1024字节。 StreamReader对象尝试   通过查看流的前三个字节来检测编码。   它自动识别UTF-8,little-endian Unicode和   如果文件以适当的字节开头,则为big-endian Unicode文本   订单商标。否则,使用用户提供的编码。见   Encoding.GetPreamble方法获取更多信息。

如果您希望它不检测little-endian Unicode和big-endian Unicode,请调用以下构造函数:

new StreamReader(stream, Encoding.UTF8, false)) 

false将关闭编码检测,因此此调用将使用UTF 8对文件进行编码。