最是人间留不住,朱颜辞镜花辞树。这篇文章主要讲述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();
}
问题出在:某些情况下返回的字符串与与原始编码的字符串并不同。
例如,笑脸符号有时会被解码为 4 个未知字符:
【C# 从 UTF-8 流中读取字符串的正确方法】
原始字符串:
推荐阅读
- 作为初学者,物理层与数据链路层要了解哪些
- #yyds干货盘点#设计模式之单例模式
- 图解 Eureka 源码之启动过程 #yyds干货盘点#
- JavaScript事件捕获冒泡与捕获
- Linux的引导过程与服务控制
- 在WordPress网站的会员注册表单上添加自定义流程
- 在WYSISWG编辑器中将类添加到图像(高级自定义字段/ WordPress)
- 在logo旁边添加其他图像
- 将Bootstrap侧边栏菜单添加到wordpress