У меня есть скрипт, который принимает файл или соединение, которые иногда могут иметь метку порядка байтов 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] ""
Windows
rawToChar(as.raw(c(0xef, 0xbb, 0xbf)))
## [1] ""
Поведение сопоставления с образцом выглядит одинаково в GNU-Linux и Windows, например, , grep
, sub
regexpr
. Однако для некоторых операций Linux не считает спецификацию символами, а Windows. В результате такие функции, как substr
или substring
, будут вести себя по-разному в зависимости от операционной системы.
Мой вопрос
Есть ли способ заставить мой компьютер с Linux имитировать поведение Windows или наоборот?
Спасибо!