r - 在包函数中使用非ASCII字符

标签 r string unicode ascii

我正在尝试编写一个等效于scales::dollar的函数,该函数在图形的开头添加了磅(£)符号。由于刻度代码非常健壮,因此我将其用作框架,只是将$替换为£。

一个简化的功能示例:

pounds<-function(x) paste0("£",x)


运行检查时,我得到以下信息:

Found the following file with non-ASCII characters:
  pounds.R
Portable packages must use only ASCII characters in their R code,
except perhaps in comments.
Use \uxxxx escapes for other characters.


仔细阅读《 Writing R扩展指南》,它对如何解决此问题没有多大帮助(IMO)。它提到\ uxxxx并说它是指Unicode字符。

查找unicode字符会产生代码&#163,但是我可以找到的\uxxxx指南很少,并且与W3schools上的Java有关。

因此,我的问题是:

您如何使用\ uxxxx转义符在R函数中实现非Unicode字符的用法,使用该函数后如何影响此类字符的显示?

最佳答案

对于\ uxxxx转义,您需要知道字符的十六进制数。您可以使用charToRaw确定它:

sprintf("%X", as.integer(charToRaw("£")))
[1] "A3"


现在,您可以使用它来指定您的非ASCII字符。 \u00A3£代表相同的字符。

另一种选择是使用stringi::stri_escape_unicode

library(stringi)
stringi::stri_escape_unicode("➛")
# "\\u279b"


这将通知您"\u279b"代表字符"➛"

关于r - 在包函数中使用非ASCII字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22223431/

相关文章:

linux - Linux系统Prolog程序中TXT文件编码问题

ruby 1.9 : Convert byte array to string with multibyte UTF-8 characters

r - 为什么 R 会在导出时重新调整绘图中的所有内容而不是文本的大小?

r - 在Sublime文字3 : independent help page中使用R

r - 导入和转换许多 csv 文件

java - 如何在 Java 中的字符串变量中包含 double 变量?

string - 如何获得耗时(以毫秒为单位)

r - data.table - 连接 NA 键

string - JDK 1.4 与 JDK 1.5 中的 java URI 变化

delphi - delphi 7 中的 utf8 解码