在导入 Content-Type 原始数据的字符串中嵌入 nul:text/tab-separated-values;字符集=utf-16le
embedded nul in string importing raw data of Content-Type: text/tab-separated-values; charset=utf-16le
使用 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
有什么想法吗?我在网上发现这方面的资源有限...
供参考。对于原始结构,“00”表示 NUL。
解决方案是删除所有 NUL 值然后转换为 char.
> dat <- req$content
> up_dat <- dat[!dat=='00']
> rawToChar(up_dat)
删除对转换后的整体数据结构没有影响。
在这种情况下,
readr::read_tsv()
工作得很好。
您还可以使用 readBin()
读取原始向量。唯一需要知道或猜测的是用于 n
的大小。但是您可以通过计算 NUL 值来计算这些值。
count_nul <- length(dat[dat == 00])
readBin(dat, n = count_nul)
使用 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
有什么想法吗?我在网上发现这方面的资源有限...
供参考。对于原始结构,“00”表示 NUL。 解决方案是删除所有 NUL 值然后转换为 char.
> dat <- req$content
> up_dat <- dat[!dat=='00']
> rawToChar(up_dat)
删除对转换后的整体数据结构没有影响。
在这种情况下,
readr::read_tsv()
工作得很好。
您还可以使用 readBin()
读取原始向量。唯一需要知道或猜测的是用于 n
的大小。但是您可以通过计算 NUL 值来计算这些值。
count_nul <- length(dat[dat == 00])
readBin(dat, n = count_nul)