我有一个脚本可以提取有时可能有UTF-8 byte order mark (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之间的模式匹配行为似乎相同,例如,,grep
,sub
regexpr
。但是,对于某些操作,Linux不会将BOM计为字符,而是Windows。因此,substr
或substring
等函数的行为会因操作系统而异。
我的问题
有什么方法可以强制我的Linux机器模仿Windows的行为,反之亦然?
谢谢!