У меня проблемы с обработкой экранированных символов Юникода в R, особенно с теми, которые встречаются при получении информации из MediaWiki API.Я нашел бы строку JSON, такую как
{"query":{"categorymembers":[{"ns":0,"title":"Banach\u2013Tarski paradox"}]}}
, которая должна быть совершенно правильной, но при чтении через fromJSON()
я получаю:
snip...
[1] "Banach\023Tarski paradox"
Изначально я думал, что это просто проблема сRJSONIO, но я сталкиваюсь с похожими проблемами с scan()
и readLines()
.Я предполагаю, что мне не хватает чего-то очень простого.
Я не могу на самом деле привести полностью воспроизводимый пример, используя only R, потому что если я отправлю "em \ u2013dash" в файл через запись() (или некоторая эквивалентная функция) R автоматически преобразует их в тире.Так что здесь идет.Создайте текстовый файл с именем test1 со следующим:
"em\u2013dash" "em–dash" " em \u2013 dash"
Затем загрузите R (для любого пути к файлу):
> scan( file = "~/R/test1", what = "character", encoding = "UTF-8")
Read 3 items
[1] "em\\u2013dash" "em–dash" " em \\u2013 dash"
> readLines("~/R/test1", warn = FALSE, encoding = "UTF-8")
[1] "\"em\\u2013dash\" \"em–dash\" \" em \\u2013 dash\""
Добавленный escape-символ вызывает мои проблемыс fromJSON()
.Я мог бы просто удалить их, но, вероятно, сломал бы что-то еще в процессе, и я думаю, что есть более простое решение.Благодарю.
Вот информация о сеансе:
R version 2.14.1 (2011-12-22)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
locale:
[1] C/en_US.UTF-8/C/C/C/C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] RJSONIO_0.98-0
loaded via a namespace (and not attached):
[1] tools_2.14.1