【发布时间】:2019-02-27 12:55:08
【问题描述】:
如何用空格替换 Unicode 十六进制数字?在抓取网站时,我发现字符串打印为空白,但不是空白。例如:
print(str)
打印
3 Max. 11
但是
print(charToRaw(str))
打印
33 c2 a0 4d 61 78 2e 20 31 31
如何将十六进制数字 0xc2a0 替换为一个空格 (" ")?
我试过了
library(stringr)
str_replace_all(str, "[^[:alnum:]]", " ")
但这也取代了句号
【问题讨论】:
-
c2 a0 是 U+00A0 的 UTF-8 编码,NO-BREAK SPACE。最好使用支持 unicode 的字符串函数将该字符替换为普通空格,而不是处理原始 UTF-8 字节。
-
快速搜索“R 字符串函数”表明,
gsub("\u00a0", " ", str)之类的东西可能会奏效。