【问题标题】:Convert input file or stream to UTF8 and detect if it's UTF8 or not (asp.net)将输入文件或流转换为 UTF8 并检测它是否为 UTF8 (asp.net)
【发布时间】:2013-08-26 08:02:52
【问题描述】:

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

干杯阿斯卡

【问题讨论】:

    标签: c# asp.net utf-8


    【解决方案1】:

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

    您可以使用 StreamReader 进行转换:

    new StreamReader(stream, Encoding.UTF8)) 
    

    其实使用这个contructor会阻止你之前的检查,你可以直接使用它。

    MSDN:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-21
      • 1970-01-01
      • 2020-01-26
      • 1970-01-01
      • 2023-03-15
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多