代码之家  ›  专栏  ›  技术社区  ›  Rush Frisby

制表符分隔或逗号分隔输出中的新行

  •  2
  • Rush Frisby  · 技术社区  · 14 年前

    我正在寻找一些处理csv和制表符分隔文件的最佳实践。

    对于CSV文件,如果一个值包含逗号或双引号,我已经在进行一些格式化了,但是如果该值包含新行字符呢?我是否应该保持新行不变,并将值括在双引号中+转义值中的任何双引号?

    对于制表符分隔的文件也有同样的问题。如果答案不一样的话,我想答案会非常相似。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Jack    14 年前

    通常你保持 \n " " 字符串。这不会产生歧义,但如果您必须使用普通的文本编辑器查看该文件,则会非常糟糕。

    但这是您应该做的,因为除了双引号本身之外,您在CSV中不转义字符串中的任何内容。

        2
  •  0
  •   Robert Hui    14 年前

    @杰克说得对,你最好的办法就是保持沉默 \n

    和大多数事情一样,我认为一致性是关键。据我所知,只有在值跨越多行、包含逗号或包含双引号时才需要双引号。在我看到的一些实现中,所有的值都是转义和双引号,因为这使得解析算法更简单(从来没有转义和双引号的问题,而读取CSV时则相反)。

    这并不是最优化空间的解决方案,但是对于您自己的库和将来可能使用该文件的其他库来说,读写该文件是一件微不足道的事情。

        3
  •  0
  •   peak    5 年前

    http://paulfitz.github.io/dataprotocols/linear-tsv/index.html

    出于明显的原因,大多数这类公约至少遵守以下规定:

       \n for newline,
       \t for tab,
       \r for carriage return,
       \\ for backslash
    

    一些工具添加 \0

    推荐文章