我是ServiceStack的新手。它具有为数据提供csv文件的功能,但我需要以UTF8格式下载它,因为我得到了一些特殊的字符。我已经尝试过这个配置设置。
SetConfig(new HostConfig
{
AppendUtf8CharsetOnContentTypes = new HashSet<string> { MimeTypes.Csv }
});但没有运气..。请建议我做错了什么。
发布于 2015-02-03 22:26:33
默认情况下,ServiceStack文本序列化器已经序列化为UTF8。下面的配置只追加UTF8后缀,因此返回的完整内容类型是text/csv; charset=utf-8
SetConfig(new HostConfig {
AppendUtf8CharsetOnContentTypes = new HashSet<string> { MimeTypes.Csv }
});它不会改变序列化到已经是UTF-8的内容。
我做了一个更改,允许您修改用于ServiceStack.Text 在这个承诺中中不同文本序列化程序的ServiceStack.Text。
这将允许您指定为CSV序列化程序发出一个UT8 BOM,其中:
CsvSerializer.UTF8Encoding = UTF8Encoding(true);此更改可从v4.0.37+ (即现在的可在MyGet上获得 )获得。
发布于 2018-04-10 15:59:53
对于ServiceStack版本> 5.x.x,您必须像下面这样修改代码
CsvSerializer.UseEncoding = PclExport.Instance.GetUTF8Encoding(true);默认情况下,它使用的是CsvSerializer.UseEncoding = PclExport.Instance.GetUTF8Encoding(false); // without BOM
https://stackoverflow.com/questions/28296759
复制相似问题