Используйте Encoding.UTF8
.
Я проверил это в моем примере, как показано ниже:
var a = new Person("Ællo", 33);
string output = JsonConvert.SerializeObject(a);
FileStream fs = new FileStream("test.txt", FileMode.Create, FileAccess.Write);
fs.Write(Encoding.UTF8.GetBytes(output), 0, Encoding.UTF8.GetByteCount(output));
fs.Close();
Вы можете увидеть Encoding.UTF8.GetBytes
и Encoding.UTF8.GetByteCount
. Кодирует строку в байты.
И это пример десериализации, как показано ниже:
byte[] buffer;
fs = new FileStream("test.txt", FileMode.Open, FileAccess.Read);
buffer = new byte[fs.Length];
fs.Read(buffer, 0, (int)fs.Length);
fs.Close();
Person readPerson = JsonConvert.DeserializeObject<Person>(Encoding.UTF8.GetString(buffer));
Вы можете увидеть Encoding.UTF8.GetString
.
Хорошо работает.