微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用CRAN方式将字符编码为HTML

如何解决使用CRAN方式将字符编码为HTML

在对关闭进行重复投票之前,请确保它确实在这里回答了我的特定问题。问题看起来很相似,但我还没有找到答案。谢谢。


我正在寻找一种将任意标量字符转换为其HTML编码形式的方法。我不想只编码<"等,而是整个文本。

所以形式的文本

"<abc at def.gh>"

被编码为

"&#x3c;&#x61;&#x62;&#x63;&#x20;&#x61;&#x74;&#x20;&#x64;&#x65;&#x66;&#x2e;&#x67;&#x68;&#x3e;"

我的目标是兼容CRAN编码维护者电子邮件地址的方式。 因此,<不应为&lt;,而应为&#x3c;。同样,.不应为&period;,而应为&#x2e;

要在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>"),"&#x3c;&#x61;&#x62;&#x63;&#x20;&#x61;&#x74;&#x20;&#x64;&#x65;&#x66;&#x2e;&#x67;&#x68;&#x3e;"
)
# [1] TRUE

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。