Если я возьму 0d, 0a, 48, 4b, 45, 59, 4b, 4c, 4f, 43, 41, 4c, 5f, 4d, 61 43, 48
и предположу, что он закодирован с использованием UTF-16-LE , это будет отображаться как 䭈 奅 䱋 䍏 䱁 䵟 䍡, что выглядит примерно так же, как в первом разделе вашего скриншота , Таким образом, мне кажется, что ваша программа правильно сохраняет данные, но приложение, которое вы используете для просмотра файла, неправильно интерпретирует его как кодировку UTF-16-LE.
Возможно, это связано с все, что вы записали в файл ранее (вы упоминаете, что эти данные добавляются к ранее записанным данным). Если первые два байта являются FF, FE, это может быть воспринято как сигнал о том, что файл имеет кодировку UTF-16-LE , но не все редакторы распознают это).
Если вы откроете файл в шестнадцатеричном редакторе Я ожидаю, что вы увидите данные, как ожидалось (т.е. 0d, 0a, 48,
...).