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

本文关键字:是否 UTF8 net asp 检测 文件 输入 转换 | 更新日期: 2023-09-27 18:28:58

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

干杯Askar

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

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

为了转换它,您可以使用StreamReader:

new StreamReader(stream, Encoding.UTF8)) 

事实上,使用这个构造器可以防止你之前的检查,你可以直接使用它。

MSDN:

字符编码由编码参数设置缓冲区大小设置为1024字节。StreamReader对象尝试通过查看流的前三个字节来检测编码。它自动识别UTF-8、小端Unicode和big-endian Unicode文本(如果文件以适当的字节开头)订单标记。否则,将使用用户提供的编码。请参阅有关详细信息,请使用Encoding.GetPreamble方法。

如果您希望它不检测小端Unicode和大端Unicode,请调用以下构造函数:

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

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