'\ xfe'的扩展ASCII字符是'þ'。
然而,当我尝试打印角色时,我得到:
> print('\xfe')
[1] "\376"
有没有办法打印'þ'?
编辑以按要求添加上下文:
> getOption("encoding")
[1] "native.enc"
> l10n_info()
$MBCS
[1] FALSE
$`UTF-8`
[1] FALSE
$`Latin-1`
[1] FALSE
> Sys.getlocale()
[1] "C"
答案 0 :(得分:1)
您是否尝试过'\u00FE'
。希望在不同的语言环境中没有什么不同
答案 1 :(得分:0)
我可以在C语言环境中的Linux机器上重现该问题
.Platform$OS.type
## [1] "unix"
Sys.getlocale()
## [1] "C"
'\xfe'
## [1] "\376"
在Windows计算机上,即使语言环境为"C"
,它也能正确打印刺。
如果我将区域设置的LC_CTYPE
部分更改为带有UTF-8后缀的部分,并使用Scott Chamberlain建议的\u
规范,我可以正确地打印刺。
# Easy test, thorn is a common char: Icelandic
Sys.setlocale("LC_CTYPE", "is_IS.utf8")
'\u00FE'
## [1] "þ"
# Harder test, thorn is very rare: English
Sys.setlocale("LC_CTYPE", "en_GB.utf8")
'\u00FE'
## [1] "þ"
# Even harder test, thorn is unused: Arabic
Sys.setlocale("LC_CTYPE", "ar_QA.utf8")
'\u00FE'
## [1] "þ"
答案 2 :(得分:0)
您确定“\ xfe”的扩展ASCII字符是“þ”吗?如果我没错的话,我认为这对“utf-8”或“latin1”都有用。
无论如何,这就是我得到你要求的印刷品的方式:
x <- "\xfe"
Encoding(x)
#[1] "latin1"
l10n_info()
将为您提供您的语言环境字符集(在我的情况下,LATIN-1是语言环境):
l10n_info()
#$MBCS
#[1] FALSE
#$`UTF-8`
#[1] FALSE
#$`Latin-1`
#[1] TRUE
#$codepage
#[1] 1252
由于x和locale charset都是latin1,print()将正确显示你想要的字符:
print(x)
#[1] "þ"