Не могу записать некоторые символы Юникода в файл - PullRequest
0 голосов
/ 21 декабря 2018

Давайте рассмотрим следующий код:

> cat('\u2077\u2078\u2079 \u2087\u2088\u2089')
⁷⁸⁹ ₇₈₉
> out <- file("out.txt", "w", encoding = 'utf-8')
> cat('\u2077\u2078\u2079 \u2087\u2088\u2089', file=out)
> close(out)

содержимое out.txt:

78<U+2079> 789

Форма подсписка / верхнего индекса потеряна, а для показателя степени 9 это кодовая точка, котораянапечатано.

Что здесь происходит?Как я могу иметь правильную форму символов в файле, когда они печатаются в консоли RStudio?

Версии: RStudio 1.1.436 / R 3.5.2 / Windows 10

1 Ответ

0 голосов
/ 21 декабря 2018

Ааааа, windows и UTF-8!

Я тоже удивляюсь, и это работает для меня

options(encoding='native.enc')
out <- file('out.txt', open='w', encoding = 'UTF-8')
writeLines('\u2077\u2078\u2079 \u2087\u2088\u2089', 'out.txt', useBytes = TRUE)
close(out)
readback <- readLines('out.txt', encoding='UTF-8')

Моя установка немного старше (моя наиболее часто используемая установкаэто OSX): Rstudio 0.99.903 / R 3.3.1 / Windows 7

Самое странное, с чем я столкнулся, это то, что он перестает работать, если вы установили options(encoding='UTF-8')

И, наконец, я заметил, что все упоминания UTF-8 указаны в верхнем регистре, я вижу, что вы использовали строчные буквы, я не уверен, что это имеет значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...