gpt4 book ai didi

ruby - rb :bom|utf-8 mean in CSV. 在 Ruby 中打开什么?

转载 作者:行者123 更新时间:2023-12-02 03:13:06 25 4
gpt4 key购买 nike

'rb:bom|utf-8' 是什么意思:

CSV.open(csv_name, 'rb:bom|utf-8', headers: true, return_headers: true) 做 |csv|

我能理解:

  1. r表示读取
  2. bom 是一种在文件开头带有 \xEF\xBB\xBF 的文件格式表示字节顺序。
  3. utf-8 是一种文件格式

但是:

  1. 我不知道它们是如何组合在一起的,为什么有必要写下所有这些来读取 csv
  2. 我正在努力寻找文档这。它似乎没有记录在
    https://ruby-doc.org/stdlib-2.6.1/libdoc/csv/rdoc/CSV.html

更新:

找到一个很有用的文档: https://ruby-doc.org/core-2.6.3/IO.html#method-c-new-label-Open+Mode

最佳答案

(接受的答案不是不正确但不完整)

rb:bom|utf-8 转换为人类可读的句子意味着:

以二进制模式 (b) 打开要读取的文件 (r) 并查找 Unicode BOM 标记 (bom ) 来检测编码,或者如果未找到 BOM 标记,则假定为 UTF-8 编码 (utf-8)。

BOM 标记可用于检测文件是 UTF-8 还是 UTF-16,如果是 UTF-16,则确定是小端 UTF-16 还是大端 UTF-16。还有一个 UTF-32 的 BOM 标记,但 Ruby 截至目前还不支持 UTF-32。 BOM 标记只是 Unicode 标准中的一个特殊保留字节序列,仅用于检测文件的编码,并且必须是该文件的第一个“字符”。它被推荐并通常用于 UTF-16,因为它存在两种不同的变体,它对于 UTF-8 是可选的,通常如果文件是 Unicode 但没有 BOM 标记,则假定它是 UTF-8。

关于ruby - rb :bom|utf-8 mean in CSV. 在 Ruby 中打开什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57032550/

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