В прошлом U+FEFF
был (на очень старых версиях Unicode) пробелом нулевой ширины, и он мог находиться в середине текста. Теперь это должно использоваться только как спецификация и только в качестве первой кодовой точки.
Так что вам решать: хотите ли вы обрабатывать очень старый Unicode, как ожидалось, или хотите показать пользователю его как неправильный символ?
Мне не известны практические случаи, когда вы видите разницу (первые люди, которые использовали Unicode, были также склонны к обновлению данных, люди, которые склонны использовать старый код, вероятно, обновили позже (время спецификации) до Unicode).