我在使用C#的asp.net mvc 2应用程序时遇到了UTF8编码问题。我正在尝试让用户从字符串下载一个简单的文本文件,想要通过下面这行代码获取字节数组:
var x = Encoding.UTF8.GetBytes(csvString);
但是当我使用以下代码将其返回进行下载时:
return File(x, ..., ...);
我得到的文件没有BOM,所以克罗地亚语字符无法正确显示。这是因为我的字节数组在编码后不包含BOM。我尝试手动插入这些字节,然后它就能正确显示,但这不是最好的做法。
我还试过创建UTF8Encoding类实例,并将布尔值(true)传递给其构造函数来包括BOM,但也不起作用。
有没有解决方案?谢谢!
Encoding.UTF8
等同于new UTF8Encoding(true)
。该参数控制GetPreamble()
是否会输出 BOM。 - user247702GetBytes
дёҚиғҪеҒҮи®ҫжҲ‘们жӯЈеңЁеҶҷе…Ҙж–Ү件гҖӮи°ҒеҶҷе…Ҙж–Ү件еә”иҜҘйҰ–е…ҲиҝӣиЎҢеүҚеҜјж“ҚдҪңпјҲдҫӢеҰӮеғҸStreamWriterдёҖж ·пјүгҖӮ - Dave Van den Eyndeapplication/csv
的 contentType,它可以正常工作,但是如果我将其替换为text/csv
,它就停止工作了,也许有人知道为什么? - Ramūnas