You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何将"<c2>"字符串转换为十六进制原始值0xc2

问题原因

R 中字符串字面量里的\x是转义序列标识,仅在代码中直接写字符串字面量时生效。你通过字符串替换得到的\x只会被识别为普通的「反斜杠+字母x」两个独立字符,不会被解析为十六进制转义前缀,这就是你得到双反斜杠打印结果的原因。

解决方案

不需要手动拼接转义字符,先提取<>包裹的十六进制串,直接用R内置的十六进制处理函数转换即可:

  1. 先去掉原始字符串前后的<和>,拿到纯十六进制内容
  2. 用hexToRaw()直接转成目标raw值,如果需要得到对应字符再用rawToChar()转换即可
original_string <- "<c2>"
# 提取<>中间的纯十六进制内容
hex_part <- gsub("[<>]", "", original_string)
# 直接转换为目标raw值
target_raw <- hexToRaw(hex_part)
# 验证和预期的0xc2完全一致
identical(target_raw, as.raw(0xc2))

# 如果需要得到对应的"\xc2"字符串,再做一次raw转字符
good_hex_string <- rawToChar(target_raw)
identical(
  charToRaw(good_hex_string),
  as.raw(0xc2)
)

该方案同时支持多段连续十六进制转换的场景,比如输入<c2><a1><b3>也可以直接完成转换,不需要额外修改逻辑。

内容的提问来源于stack exchange,提问作者Edgar Manukyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 11:54:03