R在data.table中显示错误的编码,但在向量中是正确的

时间:2017-10-16 15:33:26

标签: r unicode data.table

有谁知道为什么会这样?即为什么Unicode字符在数据表行中没有正确显示,但正确包含在向量(数据表列)中?

>test.dt

>fuel    box         seller.name
>1: Gasoline Manual Michels S<U+00E0>rl

> test.dt[,seller.name]
>[1] "Michels Sàrl"

2 个答案:

答案 0 :(得分:1)

首先确保您的语言环境设置正确。试试这个:

library(data.table)
Sys.setlocale("LC_CTYPE", "") # set character type locale to native
df = data.table(id = 1, name = c("Michels Sàrl"),stringsAsFactors = F)

如果这不起作用,您可能会在Windows上遇到R中的已知错误;对于此错误的另一个实例,请参阅https://stackoverflow.com/a/46720368/6233565

对于解决方法,请尝试以下方法:

library(corpus)
print.corpus_frame(df)

答案 1 :(得分:0)

我尝试了同样的例子,它显示正常。请在下面找到

library(data.table)
df = data.table(id = 1, name = c("Michels Sàrl"),stringsAsFactors = F)
>df
   id         name
1:  1 Michels Sàrl