R - 将Emoji Unicode转换为字符

3
我正在使用R编程。假设我有一个表情符号的Unicode值。
wink_emoji <- "\U0001f609"

或者,或作为另一种选择,如下:
wink_emoji <- "U+1f609"

有没有一种函数可以用来将实际的表情符号打印到控制台上?就像这样:
[1] ""

作为它的HTML字符实体怎么样?
[1] "&#128521;"

此外,如果我有一个像这样的字符串:
test <- "This is a test U+1f609 U+1F469 U+200D U+2764 U+FE0F U+200D U+1F48B U+200D U+1F469"

我能否将其通过一个函数运行以匹配所有的表情符号并返回这个结果:
[1] "This is a test ‍❤️‍‍"

也许可以看看 remoji 包? - MichaelChirico
2
cat("\U0001f609")(如果您的字体具有这些字形) - alistaire
打印需要多个Unicode值的表情符号怎么办(例如:"\U0001F469 \U000200D \U0002764 \U000FE0F \U000200D \U0001F48B \U000200D \U0001F469" 可以渲染为 ‍❤️‍‍) - Christopher Costello
1
只需刪除空格:cat(gsub(' ', '', "\U0001F469 \U000200D \U0002764 \U000FE0F \U000200D \U0001F48B \U000200D \U0001F469")) - alistaire
1个回答

3
使用 utf8 包内的 utf8_print 函数进行打印,使用 utf8ToInt 函数获取字符代码点的整数值:
wink_emoji <- "\U0001f609"
utf8::utf8_print(wink_emoji)
#> [1] "​"
utf8ToInt(wink_emoji)
#> [1] 128521

(只有在 macOS 和 Linux 上才能打印表情符号,而在 Windows 上不行。)


太棒了!这基本上就是我在寻找的东西。不过,还有一件事,那么对于需要多个Unicode值的表情符号如何打印呢?(例如:"\ U0001F469 \ U000200D \ U0002764 \ U000FE0F \ U000200D \ U0001F48B \ U000200D \ U0001F469" 应该如何呈现 ‍❤️‍‍ 表情符号) - Christopher Costello
支持 emoji zwj 序列还不是很好。如果有任何问题,请提交错误报告: https://github.com/patperry/r-utf8/issues - Patrick Perry
我刚刚在utf8的开发版本中修复了你的示例:https://github.com/patperry/r-utf8/commit/f5e6601b7741a63bfc2dfb0c6cdbbe9ef8f3537c - Patrick Perry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接