相关疑难解决方法(0)

强制字符向量编码从R中的"未知"到"UTF-8"

我在R中的字符向量编码不一致时遇到问题

我从中读取表格的文本文件被编码(通过Notepad++)UTF-8(我也尝试UTF-8 without BOM过).

我想从这个文本文件中读取表,转换它data.table,设置key并使用二进制搜索.当我试图这样做时,出现以下情况:

警告消息:在[.data.table(poli.dt,"żżonymi",mult ="first")中:在连接列中检测到已知编码(latin1或UTF-8).data.table比较当前的字节数,因此不支持 混合编码; 即,使用latin1和UTF-8,或者如果任何未知编码是非ascii,其中一些已标记为已知而其他未标记.但是如果单独使用latin1或UTF-8,并且所有未知编码都是ascii,那么结果应该没问题.将来我们会检查你,如果一切正常,请避免这个警告.棘手的部分是这样做而不会影响ascii唯一案例的性能.

和二进制搜索不起作用.

我意识到,我的data.table- key列包括两个:"未知"和"UTF-8"编码类型:

> table(Encoding(poli.dt$word))
unknown   UTF-8 
2061312 2739122 
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下方法转换此列(在创建data.table对象之前):

  • Encoding(word) <- "UTF-8"
  • word<- enc2utf8(word)

但没有效果.

我还尝试了几种不同的方法将文件读入R(设置所有有用的参数,例如encoding = "UTF-8"):

  • data.table::fread
  • utils::read.table
  • base::scan
  • colbycol::cbc.read.table

但没有效果.

==================================================

我的R.version:

> R.version
           _                           
platform       x86_64-w64-mingw32          
arch           x86_64                      
os             mingw32                     
system         x86_64, mingw32             
status                                     
major          3                           
minor          0.3                         
year           2014                        
month          03 …
Run Code Online (Sandbox Code Playgroud)

r utf-8 character-encoding data.table

47
推荐指数
2
解决办法
3万
查看次数

标签 统计

character-encoding ×1

data.table ×1

r ×1

utf-8 ×1