问题描述
在对关闭进行重复投票之前,请确保它确实在这里回答了我的特定问题。问题看起来很相似,但我还没有找到答案。谢谢。
我正在寻找一种将任意标量字符转换为其HTML编码形式的方法。我不想只编码<
,"
等,而是整个文本。
所以形式的文本
"<abc at def.gh>"
被编码为
"<abc at def.gh>"
我的目标是兼容CRAN编码维护者电子邮件地址的方式。
因此,<
不应为<
,而应为<
。同样,.
不应为.
,而应为.
。
要在CRAN上查看它,您可以访问任何软件包的CRAN页面,即https://cran.r-project.org/package=curl,然后“查看源代码”并在其中找到Maintainer
字段。
我正在寻找一种轻量级的解决方案,该解决方案将需要尽可能少的依赖关系,并且不必很快。
作为参考,这是一种在线工具,用于对编码的字符串进行解码:https://onlineasciitools.com/convert-html-entities-to-ascii
解决方法
这里有些快速(未经彻底测试)。它的灵感来自another SO answer。
foo <- function(x) {
splitted <- strsplit(x,"")[[1]]
intvalues <- as.hexmode(utf8ToInt(enc2utf8(x)))
paste(paste0("&#x",intvalues,";"),collapse = "")
}
all.equal(
foo("<abc at def.gh>"),"<abc at def.gh>"
)
# [1] TRUE