R未能保留某些特殊字符

R未能保留某些特殊字符,r,unicode,R,Unicode,我最近更新到了R-4.0.3,在运行一些旧代码时遇到了问题 一些unicode字符似乎被R“简化”到改变其含义或无意义的程度 c(“a≥ b“√2、“360°”返回 [1]“a=b”“v2”“360°” 我可以使用它们的unicode代码点正确地呈现符号,但是当我对生成的字符向量执行任何操作时,特殊字符不会被保留 char_str <- c("a \u2265 b", "\u221A2", "360\u00B0") > c

我最近更新到了R-4.0.3,在运行一些旧代码时遇到了问题

一些unicode字符似乎被R“简化”到改变其含义或无意义的程度

c(“a≥ b“√2、“360°”
返回
[1]“a=b”“v2”“360°”

我可以使用它们的unicode代码点正确地呈现符号,但是当我对生成的字符向量执行任何操作时,特殊字符不会被保留

char_str <- c("a \u2265 b", "\u221A2", "360\u00B0")

> char_str
[1] "a ≥ b" "√2"    "360°"

> data.frame(char_str)
  char_str
1    a = b
2       v2
3     360°
char\u str char\u str
[1] “a≥ b“√2"    "360°"
>数据帧(char_str)
查鲁街
1 a=b
2 v2
3     360°

在以前安装的R(3.xx)中≥ 及√ 在放入data.frame时保留。我最终将数据帧传递给
flextable::
对象,以便使用
officer::
将其放入.docx。我会接受一个直到最后一步才呈现字符的解决方案。

您的
locale()
显示了什么?我可以在R4.0.2上重现您的问题。我想知道问题是否出在
print.data.frame
,如果是
d=data.frame(x=“a\u2265b”)
print(dd)
显示
=
,但是
print(dd[[1]])
显示
。所以信息仍然存在,只是没有正确打印。我有一台运行3.6.2的云计算机器,它也复制了这个问题。嗯,再做一些谷歌搜索,这可能是Windows的已知问题。看,还有。好消息是,当你把它放到.docx中时,它应该是好的。我无法在Mac上的R4.0.3上复制它。无论是在data.frame还是vector中,对我来说都是一样的。你的
locale()
显示了什么?我可以在R4.0.2上重现你的问题。我想知道问题是否出在
print.data.frame
,如果是
d=data.frame(x=“a\u2265b”)
print(dd)
显示
=
,但是
print(dd[[1]])
显示
。所以信息仍然存在,只是没有正确打印。我有一台运行3.6.2的云计算机器,它也复制了这个问题。嗯,再做一些谷歌搜索,这可能是Windows的已知问题。看,还有。好消息是,当你把它放到.docx中时,它应该是好的。我无法在Mac上的R4.0.3上复制它。无论是在data.frame还是vector中,对我来说都是一样的。