如何将十六进制字符串转换为R中的文本?

时间:2015-03-25 09:33:49

标签: r text hex converter

是否有一个函数可以将十六进制字符串转换为R?

中的文本

例如:

我已将十六进制字符串1271763355662E324375203137转换为qv3Uf.2Cu 17

有人在R中知道一个好的解决方案吗?

2 个答案:

答案 0 :(得分:10)

这是一种方式:

s <- '1271763355662E324375203137'
h <- sapply(seq(1, nchar(s), by=2), function(x) substr(s, x, x+1))
rawToChar(as.raw(strtoi(h, 16L)))

## [1] "\022qv3Uf.2Cu 17"

如果您愿意,可以按以下方式sub输出不可打印的字符:

gsub('[^[:print:]]+', '', rawToChar(as.raw(strtoi(h, 16L))))

## [1] "qv3Uf.2Cu 17"

答案 1 :(得分:0)

只需添加到@jbaums答案或对其进行简化

library(wkb)

hex_string <- '231458716E234987'

hex_raw <- wkb::hex2raw(hex_string)

text <- rawToChar(as.raw(strtoi(hex_raw, 16L)))