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