r - 具有字节顺序标记(UTF-8-BOM)行为的字符向量在操作系统之间不同

时间:2018-04-28 03:43:43

标签: r byte-order-mark

我有一个脚本可以提取有时可能有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之间的模式匹配行为似乎相同,例如grepsub regexpr。但是,对于某些操作,Linux不会将BOM计为字符,而是Windows。因此,substrsubstring等函数的行为会因操作系统而异。

我的问题

有什么方法可以强制我的Linux机器模仿Windows的行为,反之亦然?

谢谢!

0 个答案:

没有答案