在R中,如果你想要一个文字\,你需要像其他人所说的那样逃避它.我encodeString()在你的例子中没有看到原因.更容易使用nchar()和记住我的答案的第一行:逃避你的\
> nchar("\\\\")
[1] 2
> nchar("\\abcde")
[1] 6
Run Code Online (Sandbox Code Playgroud)
如果你想忘记逃生然后encodeString()可以帮助,但你要么做一个(手动逃避他们)或使用escapeString(),而不是两个:
> encodeString("\\")
[1] "\\\\"
> encodeString("\abcde")
[1] "\\abcde"
Run Code Online (Sandbox Code Playgroud)
最后,\uXXXX是一种在R中输入unicode字符的方法,这样可以解决encodeString():
> nchar(encodeString("\u2642"))
[1] 1
Run Code Online (Sandbox Code Playgroud)
因为它想将此视为unicode角色的表示.在这种情况下,"逃避他们自己"的事情是正确的:
> nchar("\\u2642")
[1] 6
Run Code Online (Sandbox Code Playgroud)
我不知道一个直接的方式来代替\用\\在R其中字符串是\uXXXX因为这将先被演绎到了unicdoe字符,然后才将替换发生(但在这一点上,没有\见?Quotes的R中使用的转义序列列表