`fread`带有特殊字符的标题(latin1)和不常见的嵌套引号

nac*_*hti 3 r data.table

我有一个带嵌套引号的latin1编码的csv文件:

Ort;Stra?e;Bezeichnung
Vienna;Testgasse 1;"Ministerium ""Pestalozzi"""
Graz;Teststra?e 3;HS
Salzburg;Beispielstra?e 9;"NMS ""Die Schlauen"""
Vienna;Wolfgang-Stra?e 7;"Wirtshaus ""Wien III"""
Run Code Online (Sandbox Code Playgroud)

使用来自data.table 1.9.6的fread在标题中给出了一个错误的特殊字符(ß),而下面的所有ß都是正确的 - 引用的引号保持"".

dat <- fread("latin1quotedat.csv", encoding = "Latin-1")
dat # wrong header, wrong quotes
       Ort         Stra\xdfe                Bezeichnung
1:   Vienna       Testgasse 1 Ministerium ""Pestalozzi""
2:     Graz      Teststraße 3                         HS
3: Salzburg  Beispielstraße 9       NMS ""Die Schlauen""
4:   Vienna Wolfgang-Straße 7     Wirtshaus ""Wien III""
Run Code Online (Sandbox Code Playgroud)

read.csv2从基础R 使用一切都如预期:

dat1 <- read.csv2("latin1quotedat.csv", encoding = "latin1")
dat1 # ok
       Ort            Straße              Bezeichnung
1   Vienna       Testgasse 1 Ministerium "Pestalozzi"
2     Graz      Teststraße 3                       HS
3 Salzburg  Beispielstraße 9       NMS "Die Schlauen"
4   Vienna Wolfgang-Straße 7     Wirtshaus "Wien III"
Run Code Online (Sandbox Code Playgroud)

也许引号有一个选项(虽然我找不到).标题中误解的特殊字符看起来像一个bug.

代码和示例csv可以在这里找到:https://github.com/nachti/datatable_test.克隆存储库并运行latin1quotedat.R.

格哈德

Aru*_*run 5

现在固定犯f91bba1当前devel的,v1.9.7.来自新闻:

fread()不尊重标题列上的编码.现在修好了,#1680.谢谢@nachti.

有了这个,我得到:

names(fread("~/Downloads/latin1quotedat.csv", encoding = "Latin-1"))
# [1] "Ort"         "Straße"      "Bezeichnung"
Run Code Online (Sandbox Code Playgroud)