R中的重音字符

时间:2015-04-21 18:58:34

标签: r twitter encoding xlsx emoticons

我在日本购买的Windows机器上使用R / RStudio,我想从社交媒体分析平台输入Twitter数据(西班牙语)。例如,我有一个XLSX格式的文件,只包含两个单元格:

  • RT @PajeroHn @ Emerson_182yababíadequeolímpiaperono que eras extorsionador aunque era de esperarse
  • Jodas Kevo。 Menos que vos sea extorsionador

那里有重音元音,还有一些非标准的表情字符,这些字符没有完整地通过导出过程。我之前尝试使用xlsx包,但看起来XLConnect可能是更好的选择:

library(XLConnect)
test <- readWorksheetFromFile('test.xlsx',sheet=1,header=FALSE)

这没关系;我甚至可以用表情符号做一些有用的事情。我很困扰它将重音字符(在“sabía”和“olímpia”中)转换为它们的非重音等价物:

test
RT @PajeroHn @Emerson_182 ya sabia que eras olimpia pero no que eras extorsionador aunque era de esperarse <ed><U+00A0><U+00BC><ed><U+00BC><U+009A>
Jodas Kevo. A menos que vos seas extorsionador<ed><U+00A0><U+00BD><ed><U+00B8><U+0082><ed><U+00A0><U+00BD><ed><U+00B8><U+0082><ed><U+00A0><U+00BD><ed><U+00B8><U+0082><ed><U+00A0><U+00BD><ed><U+00B8><U+0082><ed><U+00A0><U+00BD><ed><U+00B8><U+0082><ed><U+00A0><U+00BD><ed><U+00B8><U+0082>

我的语言环境是日语:

Sys.getlocale()
"LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;LC_MONETARY=Japanese_Japan.932;LC_NUMERIC=C;LC_TIME=Japanese_Japan.932"

但改变它实际上会使事情变得更糟:

Sys.setlocale("LC_ALL","Spanish")
[1] "LC_COLLATE=Spanish_Spain.1252;LC_CTYPE=Spanish_Spain.1252;LC_MONETARY=Spanish_Spain.1252;LC_NUMERIC=C;LC_TIME=Spanish_Spain.1252> 
test <- readWorksheetFromFile('test.xlsx',sheet=1,header=FALSE)
test                                                                                                                                             
RT @PajeroHn @Emerson_182 ya sab僘 que eras ol匇pia pero no que eras extorsionador aunque era de esperarse <ed><U+00A0><U+00BC><ed><U+00BC><U+009A>
Jodas Kevo. A menos que vos seas extorsionador<ed><U+00A0><U+00BD><ed><U+00B8><U+0082><ed><U+00A0><U+00BD><ed><U+00B8><U+0082><ed><U+00A0><U+00BD><ed><U+00B8><U+0082><ed><U+00A0><U+00BD><ed><U+00B8><U+0082><ed><U+00A0><U+00BD><ed><U+00B8><U+0082><ed><U+00A0><U+00BD><ed><U+00B8><U+0082>

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这应该有效:

testx2 <- read.xlsx2('test.xlsx',sheetIndex=1,header = FALSE, encoding = 'UTF-8')