данные.таблица неправильно считывает символы

#r #data.table

#r #данные.таблица

Вопрос:

У меня следующая ошибка:

 > a

# A tibble: 1 x 1
  Page                                             
  <chr>                                            
1 勒布朗·詹姆斯_zh.wikipedia.org_desktop_all-agents

>  dput(a)
structure(list(Page = "<U 52D2><U 5E03><U 6717>·<U 8A79><U 59C6><U 65AF>_zh.wikipedia.org_desktop_all-agents"), row.names = c(NA, 
-1L), class = c("tbl_df", "tbl", "data.frame"))
  

когда я конвертирую в data.table, кодировка становится неправильной:

 b <- as.data.table(a)

>  b

                                                                                    Page
1: <U 52D2><U 5E03><U 6717>·<U 8A79><U 59C6><U 65AF>_zh.wikipedia.org_desktop_all-agents
  

Я получаю этот фрейм данных из файла .csv, где эти японские символы отображаются правильно только при использовании read_csv. С fread, даже если я установлю encoding = ‘UTF-8’, это не сработает. Как я могу решить эту проблему с помощью data.table?

Вот моя информация о сеансе:

 > sessionInfo()
R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19041)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] tibble_3.0.3      readr_1.3.1       data.table_1.13.0

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.5       rstudioapi_0.11  knitr_1.29       magrittr_1.5     hms_0.5.3        R6_2.4.1        
 [7] rlang_0.4.7      fansi_0.4.1      tools_4.0.2      xfun_0.16        tinytex_0.25     utf8_1.1.4      
[13] cli_2.0.2        htmltools_0.5.0  ellipsis_0.3.1   yaml_2.2.1       digest_0.6.25    assertthat_0.2.1
[19] lifecycle_0.2.0  crayon_1.3.4     vctrs_0.3.2      glue_1.4.1       evaluate_0.14    rmarkdown_2.3   
[25] compiler_4.0.2   pillar_1.4.6     pkgconfig_2.0.3 
  

Обновить:

Если я напечатаю только элемент, он будет отображаться правильно.

 > b[[1]]
[1] "勒布朗·詹姆斯_zh.wikipedia.org_desktop_all-agents"
  

Комментарии:

1. Можете ли вы показать версии пакета, поскольку я не смог воспроизвести его в 1.13.0 data.table` as.data.table(a)$Page# [1] "勒布朗·詹姆斯_zh.wikipedia.org_desktop_all-agents"

2. Вряд ли это data.table проблема: когда я вставляю ваши данные structure в свою консоль без преобразования в data.table, я также вижу 1 <U 52D2><U 5E03>... (как в вашей печати data.table), предполагая, что это в другом месте.

3. Ваш dput также отображается иначе, чем dput(a)# structure(list(Page = "勒布朗·詹姆斯_zh.wikipedia.org_desktop_all-agents"), row.names = c(NA, -1L), class = c("tbl_df", "tbl", "data.frame"))

4. Просто добавил sessioninfo в соответствии с запросом.

5. @akrun вы все делаете правильно, потому что вы печатаете элемент. Попробуйте распечатать data.table вместо вектора. Смотрите мой обновленный ответ.