【问题标题】:find and replace hex digits with blanks查找并用空格替换十六进制数字
【发布时间】: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) 之类的东西可能会奏效。

标签: r regex string hex


【解决方案1】:

Shawn 的建议非常有效 - 谢谢 Shawn。参考上面他的cmets。

答案是

gsub("\u00a0", " ", str) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 2016-01-23
    • 2015-04-01
    • 2011-03-27
    • 1970-01-01
    • 2018-11-12
    • 2016-05-15
    相关资源
    最近更新 更多