gpt4 book ai didi

csv - 将应用程序移动到新服务器后,使用 CsvHelper 库生成的 CSV 文件中缺少逗号/分隔符

转载 作者:行者123 更新时间:2023-12-04 18:50:39 24 4
gpt4 key购买 nike

我一直在使用CsvHelper library for .NET它一直在 100% 工作,直到我将应用程序移动到新服务器。在新服务器上,生成 CSV 文件后,由于某种原因,文件中缺少分隔符/逗号。

我没有更改代码中的任何内容,只是将应用程序移至新服务器。

两台服务器上的 Dotnet Core 版本完全相同,位于 2.2.103 .

以下是两台服务器的 Ubuntu 版本:

  • 正确生成 CSV 文件的服务器:
  • 经销商编号:Ubuntu
  • 说明:Ubuntu 16.04.3 LTS
  • 发布:16.04
  • 代号:xenial
  • CSV 文件缺少逗号/分隔符的服务器:
  • 经销商编号:Ubuntu
  • 说明:Ubuntu 18.04.1 LTS
  • 发布时间:18.04
  • 代号:仿生

  • 以下是生成的正确和不正确 CSV 文件的差异示例:

    enter image description here

    关于为什么 CSV 文件可能缺少逗号/分隔符的任何想法?可能是 Ubuntu 版本不匹配,还是需要在新的 Ubuntu 服务器上设置格式设置?

    编辑 :

    写入 CSV 文件的函数:
    public static void CreateDeliveryReportCsvFile(string filePath, List<DatabaseFunctions.ProblemModem> lineItems)
    {
    using (var writer = new StreamWriter(filePath))
    using (var csv = new CsvWriter(writer))
    {
    csv.WriteRecords(lineItems);
    }
    }
    ProblemModem类(class):
    public class ProblemModem
    {
    public string Id { get; set; }
    public string Name { get; set; }
    public string CellNumber { get; set; }
    public DateTime SentDate { get; set; }
    public DateTime? DeliveredDate { get; set; }
    }

    最佳答案

    发生这种情况的原因是 CsvHelper 库做出了使用 CultureInfo.CurrentCulture.TextInfo.ListSeparator 的有点可疑的决定。作为default separator而不是 ',' .这意味着默认分隔符取决于机器的配置,如您所见,取决于已安装操作系统的版本。正如您现在可能已经想到的那样,您可以通过显式分配分隔符来解决此问题。

    对于数据交换应用程序InvariantCulture本来是更好的选择。或者,只是将默认值硬编码为逗号。

    关于csv - 将应用程序移动到新服务器后,使用 CsvHelper 库生成的 CSV 文件中缺少逗号/分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54706308/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com