C# 从 UTF-8 流中读取字符串的正确方法

我们下面的代码是从一个流 stream 中读取 UTF-8 编码的字符串。我们可以先考虑一下其中存在的潜在问题。

string ReadString(Stream stream)
{
    var sb = new StringBuilder();
    var buffer = new byte[4096];
    int readCount;
    while ((readCount = stream.Read(buffer)) > 0)
    {
        var s = Encoding.UTF8.GetString(buffer, 0, readCount);
        sb.Append(s);
    }

    return sb.ToString();
}

问题出在:某些情况下返回的字符串与与原始编码的字符串并不同。
例如,笑脸符号

上一篇:Linux故障:linux中使用ifconfig命令查看网卡信息时显示为eth1,但是在network-scripts中只有ifcfg-eth0的配置文件,并且里面的NAME="eth0"。


下一篇:INS-13001—win10系统安装oracle11g时遇到INS-13001环境不满足最低要求