встроенный nul в строку, импортирующий необработанные данные Content-Type: text / tab-separa-values;кодировка = UTF-16LE - PullRequest
0 голосов
/ 21 сентября 2018

Использование httr для получения отчета с сайта с использованием oath2.0 Я не могу преобразовать необработанный контент в набор символов в R.

 > req <-GET("https://www.blah.com/blah/v2/blah", config(token = token))

Мой ответ не указывает на проблему:

 Response [https://www.blah.com/blah/v2/blah]
 Date: 2018-09-21 15:55
 Status: 200
 Content-Type: text/tab-separated-values; charset=utf-16le
 Size: 21.1 MB
NA

При попытке преобразовать мои необработанные данные в char я получаю:

> rawToChar(req$content)
Error in rawToChar(req$content) : 
embedded nul in string:

При проверке содержимого с помощью content () также получаю следующую ошибку:

> content(req)
Error in guess_header_(datasource, tokenizer, locale) :
Incomplete multibyte sequence

Любые мысли?Я нашел ограниченные ресурсы по этому вопросу в Интернете ...

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

Вы также можете использовать readBin() для чтения в вашем необработанном векторе.Единственное, что вам нужно знать или угадывать, это размер, который нужно использовать для n.Но вы можете посчитать их, посчитав значения NUL.

count_nul <- length(dat[dat == 00])
readBin(dat, n = count_nul)
0 голосов
/ 22 сентября 2018

Для справки.Для необработанных структур «00» обозначает NUL.Решение состоит в том, чтобы удалить все значения NUL и затем преобразовать их в char.

 > dat <- req$content
 > up_dat <- dat[!dat=='00']
 > rawToChar(up_dat)

Удаление не оказало влияния на общую структуру данных после преобразования.

В этом случае

  readr::read_tsv()

работал просто отлично.

...