Файл в кодировке UTF-8 содержит недопустимые символы
Есть функция записи строки в файл. Есть параметр смещения, который определяет на сколько позиций от начала смещается записываемая строка. Если параметр смещения присутствует, то вначале файла появляются символы �. В кодировке UTF-8 они не видны, но функция чтения не может прочитать текст. Без смещения функция чтения работает. Также если попробовать записать символ пробела вначале файла через write, то при открытии также будет �.
Вопрос состоит в том, как в программном виде заменить эти символы на пробелы? Или на что заменить функцию lseek чтобы смещение и запись работали корректно?
if (offset!=0)
{
lseek(fd, offset, SEEK_SET);
}
ssize_t written_bytes;
if ((written_bytes = write (fd, buffer2, strlen)) < 0)
{
buffer2[written_bytes] = 0;
}