HTML用R编码文本

时间:2019-11-13 20:58:37

标签: r rtweet

我正在查看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编码?

1 个答案:

答案 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 &#128293; &#128293; &#128293;"

输入,但这些似乎是等效的编码。