Файл в кодировке 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;
}

Ответы (0 шт):