Translate unicode points to UTF-8
For historical reasons, R translates strings to the native encoding
when they are converted to symbols. This string-to-symbol
conversion is not a rare occurrence and happens for instance to the
names of a list of arguments converted to a call by do.call()
.
If the string contains unicode characters that cannot be
represented in the native encoding, R serialises those as an ASCII
sequence representing the unicode point. This is why Windows users
with western locales often see strings looking like <U+xxxx>
. To
alleviate some of the pain, rlang parses strings and looks for
serialised unicode points to translate them back to the proper
UTF-8 representation. This transformation occurs automatically in
functions like env_names()
and can be manually triggered with
as_utf8_character()
and chr_unserialise_unicode()
.
chr_unserialise_unicode(chr)
chr |
A character vector. |
This function is experimental.
ascii <- "<U+5E78>" chr_unserialise_unicode(ascii) identical(chr_unserialise_unicode(ascii), "\u5e78")
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.