Некоторые редакторы (например, блокнот) добавляют подпись BOM (маску порядка байтов) при сохранении текста UTF-8. Вы должны проверить байты 0xEF, 0xBB, 0xBF перед чтением строки из такого файла и пропустить их, если они существуют.
Другой способ - не использовать блокнот для редактирования текстов UTF-8, получить другую программу, такую как Notepad ++, Kate или любую другую, с помощью которой вы можете контролировать добавление спецификации.