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

如何在R中正常打印含Unicode十六进制字符的字符串?

在R中正常打印含HTML Unicode实体的字符串

你的字符串里的–是HTML Unicode十六进制实体,不是R原生的Unicode转义格式,直接用普通解码器肯定没用。下面给两种可行的解决办法:

方法一:使用xml2包解析

xml2包可以把HTML实体转换成对应的字符,步骤如下:

  1. 安装并加载xml2包:
install.packages("xml2")
library(xml2)
  1. 把字符串包装成HTML节点,再提取文本:
str <- "foo &#x2013; bar"
parsed_str <- xml_text(read_xml(paste0("<p>", str, "</p>")))
cat(parsed_str)
# 输出:foo – bar

方法二:使用stringi包替换HTML实体

stringi包的stri_replace_all_html函数可以直接替换所有HTML实体:

  1. 安装并加载stringi包:
install.packages("stringi")
library(stringi)
  1. 直接处理字符串:
str <- "foo &#x2013; bar"
parsed_str <- stri_replace_all_html(str)
cat(parsed_str)
# 输出:foo – bar

这两种方法都能把&#x2013;转换成对应的短破折号,之后用cat()就能正常打印出目标字符了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 13:23:13