我有一个脚本可以提取有时可能具有 UTF-8字节顺序标记 (BOM)的文件或连接。我写了这一行来处理删除不需要的字符:
text_wo_BOM <- sub(rawToChar(as.raw(c(0x5e, 0xef, 0xbb, 0xbf))), "", text_with_BOM)
但是,在这样做的同时,我注意到我的 GNU-Linux 环境没有打印字符,但我的 Windows 环境却打印了。两者都运行 R 3.4.x。
Linux
rawToChar(as.raw(c(0xef, 0xbb, 0xbf)))
## [1] ""
视窗
rawToChar(as.raw(c(0xef, 0xbb, 0xbf)))
## [1] ""
GNU-Linux 和 Windows 之间的模式匹配行为似乎是相同的,例如, 。但是,对于某些操作,Linux 不会将 BOM 计为字符,但 Windows 会。因此,诸如或之类的功能会因操作系统而异。grep
sub
regexpr
substr
substring
我的问题
有什么方法可以强制我的 Linux 机器模仿 Windows 的行为,反之亦然?
谢谢!