从未知编码中删除不可打印的空白字符

8

我使用 XML 包解析了一些 XML 文件,使用以下代码:

library(XML) 
data <- xmlToDataFrame(xmlParse("Some file I can't share.xml"))

一切正常,我得到了预期的结果。

dim(data)
## [1] 554560 13

然而,我的一些条目看起来如下

x <- "2  irfl014"
x
## [1] "2  \002\003\004\003\005\005\006\005\002\003\004\003\005\005\006\005irfl014"

尝试识别编码(但未成功)
Encoding(x)
## [1] "unknown"

library(stringi)
stri_enc_detect(x)
# [[1]]
# [[1]]$Encoding
# [1] "UTF-8"     "Shift_JIS" "GB18030"   "EUC-JP"    "EUC-KR"    "Big5"     
# 
# [[1]]$Language
# [1] ""   "ja" "zh" "ja" "ko" "zh"
# 
# [[1]]$Confidence
# [1] 0.1 0.1 0.1 0.1 0.1 0.1

编码不是我的强项,有没有简单的方法将x转换为简单形式?

x
## [1] "2  irfl014"

2
你可以提供 xdput 吗? - Sven Hohenstein
@SvenHohenstein 我已经分享了 dput... - David Arenburg
1个回答

10
x <- "2  \002\003\004\003\005\005\006\005\002\003\004\003\005\005\006\005irfl014"

cat(x)
# 2  irfl014
特殊字符,例如"\002"是不可打印的控制字符。有关更多信息,请参见此处
您可以使用以下gsub命令删除所有控制字符:
gsub("[[:cntrl:]]+", "", x)
# [1] "2  irfl014"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接