我正在查看Twitter数据,然后将其输入到html文档中。文本通常包含特殊字符(如表情符号),但未针对html正确编码。例如鸣叫:
如果#AvengersEndgame和#Joker均获得最佳影片提名,那么这将是最佳影片比赛中第一次与Marvel vs DC比赛。我认为这两部电影都应该得到点头,但是仪式前的Twitter演讲将是??
将成为:
如果#AvengersEndgame和#Joker均获得最佳影片提名,那么这将是最佳影片比赛中第一次与Marvel vs DC比赛。我认为这两部电影都应得点头,但仪式前的Twitter演讲将是🔥🔥🔥
当输入html文档时。
手动工作,我可以使用https://www.textfixer.com/html/html-character-encoding.php之类的工具来对推文进行编码,使其看起来像:
如果#AvengersEndgame和#Joker均获得最佳影片提名,那么这将是最佳影片比赛中第一次与Marvel vs DC比赛。我认为这两部电影都应该得到点头,但是仪式前的Twitter演讲将是“&#55357”;“&#56613”; “&#55357”;“&#56613”; “&#55357”;“&#56613”;
然后我可以将其输入到html文档中并显示表情符号。 R中是否有一个软件包或函数可以像上面的Web工具一样接受文本和html编码?
答案 0 :(得分:3)
这是一个将非ascii字符编码为HTML实体的函数。
entity_encode <- function(x) {
cp <- utf8ToInt(x)
rr <- vector("character", length(cp))
ucp <- cp>128
rr[ucp] <- paste0("&#", as.character(cp[ucp]), ";")
rr[!ucp] <- sapply(cp[!ucp], function(z) rawToChar(as.raw(z)))
paste0(rr, collapse="")
}
这将返回
[1] "If both #AvengersEndgame and #Joker are nominated for Best Picture, it will be Marvel vs DC for the first time in a Best Picture race. I think both films deserve the nod, but the Twitter discourse leading up to the ceremony will be 🔥 🔥 🔥"
输入,但这些似乎是等效的编码。