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

Ask*_*mov 2 c# asp.net utf-8

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

干杯阿斯卡

sar*_*ara 5

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

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

new StreamReader(stream, Encoding.UTF8)) 
Run Code Online (Sandbox Code Playgroud)

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

微软:

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

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

new StreamReader(stream, Encoding.UTF8, false)) 
Run Code Online (Sandbox Code Playgroud)

false将关闭编码检测,因此这个呼叫将编码八方使用UTF-8的文件。