首页 > 解决方案 > 用R语言构造十六进制字符串“\xc2”

问题描述

我正在尝试将 "<c2>" 字符串转换为 raw c2。我尝试用空字符串替换大于号,用“\x”替换小于号,但我总是得到2个反斜杠,即“\\xc2”

original_string <- "<c2>"
temp1 <- sub("<", "\\x", original_string, fixed = TRUE)
bad_hex_string <- sub(">", "", temp1, fixed = TRUE)

identical(
  charToRaw(bad_hex_string),
  as.raw(c(0x5c, 0x78, 0x63, 0x32))
)

good_hex_string <- "\xc2"
identical(
  charToRaw(good_hex_string),
  as.raw(0xc2)
)

标签: r

解决方案


我同意@MrFlick,输入没有标准化。您的提示确实起到了作用,非常感谢您!

original_string <- "<c2>"
temp1 <- sub("<", "0x", original_string, fixed = TRUE)
good_hex_string <- sub(">", "", temp1, fixed = TRUE)

identical(
  as.raw(strtoi(good_hex_string)),
  as.raw(0xc2)
)

推荐阅读