Net Core教程

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

本文主要是介绍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();
}

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

这篇关于C# 从 UTF-8 流中读取字符串的正确方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!