Я создаю кадр данных с ä
, закодированным в UTF-8:
> df <- data.frame(a = c('\xc3\xa4'));
> df$a <- as.character(df$a);
. На данный момент кодировка df$a
неизвестна, как и ожидалось:
> Encoding(df$a);
[1] "unknown"
При печати df$a
печатается мусор, который я тоже ожидал:
> df$a;
[1] "ä"
Итак, я явно установил кодировку df$a
в UTF-8:
> Encoding(df$a) <- 'UTF-8';
Печать df$a
теперь дает мне правильный символ:
> df$a;
[1] "ä"
Однако, когда я печатаю весь набор данных, я снова получаю что-то неожиданное.
> df
a
1 <U+00E4>
Хотя df$a
нигде не имеет нулевого байта:
> charToRaw(df$a)
[1] c3 a4
Я не понимаю, почему печать df
ведет себя иначе, чем печать df$a
.