Yes, I understand that 0xFEFF serves as a byte-order mark in the coding that you use, but for string functions it's just 2 bytes. A string has no coding. The coding is up to the programmer. The only special character in a string is the 0 that marks the end.
For finding characters with a special meaning in strings you can use the str_chr function. This way you can remove those characters for displaying the content of the string.