r - 如何将 unicode 的网络抓取数据转换为英语
问题描述
我已经从网上抓取了数据,它的输出是 unicode,如评论中所示
<U+0907><U+0928><U+094D><U+0938><U+093E><U+0907><U+0915><U+094D><U+0932><U+094B> <U+092A><U+0940><U+0921><U+093F><U+092F><U+093E> <U+092C><U+094D><U+0930><U+093F> <U+091F><U+0948><U+0928><U+093F><U+0915><U+093E>
现在如何使用 R 将这些数据翻译成英文
<U+0907><U+0928><U+094D><U+0938><U+093E><U+0907><U+0915><U+094D><U+0932><U+094B> <U+092A><U+0940><U+0921><U+093F><U+092F><U+093E> <U+092C><U+094D><U+0930><U+093F> <U+091F><U+0948><U+0928><U+093F><U+0915><U+093E>
解决方案
您的 dput 已损坏。我仍在尝试重现您的数据。并提出解决方案。
library(stringi)
library(stringr)
a <- structure(list(ID = 7357, Title = structure(1L, .Label = "<U+0905><U+092C> <U+0928><U+0939><U+0940><U+0902> <U+091B><U+092A><U+0947><U+0917><U+0940> <U+0907><U+0928><U+094D><U+0938><U+093E><U+0907><\
U+0915><U+094D><U+0932><U+094B><U+092A><U+0940><U+0921><U+093F><U+092F><U+093E> <U+092C><U+094D><U+0930><U+093F><U+091F><U+0948><U+0928><U+093F><U+0915><U+093E>", class = "factor")))
titles <- as.character(a$Title)
titles_in_unicode <- lapply(
unlist(strsplit(titles,' ')),
FUN = function(words) {
paste(stri_unescape_unicode(gsub("U+",
"\\u",
unlist(str_extract_all(words,
"U\\+([0-9]?)+([A-Z]?)+")),
fixed=TRUE)),collapse='')
}
)
输出
!> titles_in_unicode
[[1]]
[1] "अब"
[[2]]
[1] "नहीं"
[[3]]
[1] "छपेगी"
[[4]]
[1] "इन्साइक्लोपीडिया"
[[5]]
[1] "ब्रिटैनिका"
推荐阅读
- python - int 类构造函数接受字节,还是 bytearray 实例?
- java - Web 服务项目端点不可访问
- android - 当我上传大文件并向服务器发出另一个请求时,它将等到上传完成。你能优先考虑okhttp请求吗?
- php - Get selected characters from a url
- javascript - 反应 - 功能未执行
- linux - 使用分隔符在一个变量中分配输出值
- python - 当试图在1行代码中打印出列表中小于10的元素时,为什么输出的是地址
- python - 从 Python 中的输入创建一个具有两位数值的元组
- java - Math.min 不喜欢以 0 开头的数字。 (0700)
- ruby - Algorithm Ballots cast in an Election