首页 > 解决方案 > 如何将包含 Unicode 快捷方式的字符串转换为 R 中的 TRUE Unicode 字符?

问题描述

我有这个字符串包含表情符号表示的特定字符的快捷方式:

x <- "\\U0001F48C"

如何将其转换为 True Unicode(使用串联),相当于:

y <- "\U0001F48C"

cat 是检查此 Unicode 的便捷工具(至少这是我所知道的)

cat(y)

但是我会想要构建一些传递某个最后唯一编码的函数,例如在这种情况下

converter <- function(last_unicode_label="1F48C"){
  #convert as equivalent as y
}

编码列表可以在这里找到:https ://apps.timwhitlock.info/emoji/tables/unicode

标签: runicode

解决方案


有多种方法可以做到这一点。也许最简单的方法是将字符串的十六进制部分转换为整数并intToUtf8从基数 R 使用:

mystr <- c("\\U0001F48C", "\\U0001F48D")
mystr
#> [1] "\\U0001F48C" "\\U0001F48D"

mystr <- unlist(lapply(as.list(gsub("\\\\U", "0x", mystr)), intToUtf8))
mystr
#> [1] "\U0001f48c" "\U0001f48d"

这可能最好用一个小实用函数代替:

unescape <- function(x) unlist(lapply(as.list(gsub("\\\\U", "0x", x)), intToUtf8))

推荐阅读