当前位置: 首页 > 知识库问答 >
问题:

下载CSV文件(UTF 8)编码ServiceStack

冯淳
2023-03-14

我是ServiceStack的新手。它具有为数据提供csv文件的功能,但我需要以UTF8格式下载它,因为我得到一些特殊字符。我尝试过这个配置设置。

SetConfig(new HostConfig
        {
            AppendUtf8CharsetOnContentTypes = new HashSet<string> { MimeTypes.Csv } 
        });

但运气不好。。请指出我做错了什么。

共有2个答案

杜英叡
2023-03-14

对于ServiceStack版本

CsvSerializer.UseEncoding = PclExport.Instance.GetUTF8Encoding(true);

默认情况下,它使用CsvSerializer。UseEncoding=PclExport。例子GetUTF8Encoding(false);//无BOM

雍宇定
2023-03-14

默认情况下,ServiceStack文本序列化程序已序列化为UTF8。下面的配置仅附加UTF8后缀,因此返回的完整内容类型为文本/csv;字符集=utf-8

SetConfig(new HostConfig {
    AppendUtf8CharsetOnContentTypes = new HashSet<string> { MimeTypes.Csv } 
});

它不会更改序列化为已经是UTF-8的内容。

我做了一个更改,允许您修改用于ServiceStack中不同文本序列化程序的UTF8Encode。此提交中的文本。

这将允许您指定为CSV序列化器发出UT8 BOM:

CsvSerializer.UTF8Encoding = UTF8Encoding(true);

此更改可从v4获得。0.37,现已在MyGet上提供。

 类似资料:
  • 建议选择 safe 方式命名文件名。 经测试,以下修改源码以适应 utf-8 命名方式兼容性也不好。 // 修改\inc\pageutils.php中utf8_encodeFN、utf8_decodeFN两个函数   function utf8_encodeFN($file,$safe=true){ global $conf; //if($conf['fnencode'] == '

  • 我在PHP中有一个CSV字符串,它被mb_detect_编码检测为UTF8。此字符串将写入文件。当我在文本编辑器(程序员记事本)中打开它时,编辑器会说它是UTF8无标记的,当我将编码更改为ANSI时,它会在Excel中正确打开。我想用ANSI编写这个文件,这样在Excel中打开它之前就不必在文本编辑器中进行转换。尝试使用以下命令: utf8_解码($xhtml) iconv(“UTF-8”、“Wi

  • 问题内容: 我正在尝试为我的网站完成一个相当简单的任务,但是我不确定该如何去做。我希望用户查看表格,然后单击一个按钮,此时用户可以保存该表的内容作为csv文件。此请求有时可能非常复杂,因此我生成了一个进度页来提醒用户。 除了实际生成csv文件之外,我已经弄清了大多数东西。(我使用jQuery和PHP) jQuery代码在单击时运行: 相关的PHP: 这样做是将文本作为PHP文件发送,但不会生成下载

  • 问题内容: 我正在尝试使用Python(仅法语和/或西班牙语字符)读取带有重音字符的CSV文件。基于csvreader的Python 2.5文档(http://docs.python.org/library/csv.html),由于csvreader仅支持ASCII,因此我想出了以下代码来读取CSV文件。 以下是我尝试阅读的CSV文件的摘录: 即使我尝试将编码/解码为UTF-8,我仍然收到以下异常

  • 任何指针都将有所帮助。 谢谢,阿希什

  • 问题内容: 我有一些来自json文件的文本。在本文中,我应用了UTF8编码,但是该编码器无法识别非标准字符,并且为大写字符,是否有一种方法可以净化我的字符串? 我的功能: 问题答案: 我找到了解决方案。 UTF8采用8位表ASCII表,而UTF16采用16位ASCII表,解决方案很简单,只需将函数修改为: