7
我想从数据库中复制一个字节流,对其进行编码并最终将其显示在网页上。然而,我注意到编码以不同的方式(注:我使用的是“西欧”编码具有拉丁字符集,不支持中国文字):内容不同的行为c#MemoryStream编码比。 Encoding.GetChars()
var encoding = Encoding.GetEncoding(1252 /*Western European*/);
using (var fileStream = new StreamReader(new MemoryStream(content), encoding))
{
var str = fileStream.ReadToEnd();
}
比。
var encoding = Encoding.GetEncoding(1252 /*Western European*/);
var str = new string(encoding.GetChars(content));
如果内容包含中国文字比第一个代码块将产生像“d $教学而设计的”,因为编码不应该支持这些字符是不正确的字符串,而第二块将产生“D $æ™è|è设计皔“这是正确的,因为这些都是西欧字符集。
这种行为差异的解释是什么?
谢谢!现在他们产生相同的字符串。出于好奇,你建议使用哪一段代码更好?是否有任何优点或缺点? – Sidawy