escapar acentuados caracteres en utf-8 json

el siguiente código produce esta salida:

{"x": "Art. 120 - Incapacità di intendere o di volere"} 

Necesito cambiar esto, supongo que debo cambiar algo en la encoding pero no sé qué:

 {"x": "Art. 120 - Incapacit\u00e0 di intendere o di volere"} 

código:

 string label = "Art. 120 - Incapacità di intendere o di volere"; JObject j = new JObject(); j.Add(new JProperty("x", label)); string s = j.ToString(); Encoding encoding = new UTF8Encoding(false); string filename = @"c:\temp\test.json"; using (FileStream oFileStream = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write)) { using (StreamWriter oStreamWriter = new StreamWriter(oFileStream, encoding)) { oStreamWriter.Write(j.ToString()); oStreamWriter.Flush(); oStreamWriter.Close(); } oFileStream.Close(); } 

Como han dicho otros, desea utilizar StringEscapeHandling.EscapeNonAscii

 using System; using System.IO; using Newtonsoft.Json; using Newtonsoft.Json.Linq; public class Program { public static void Main() { string label = "Art. 120 - Incapacità di intendere o di volere"; JObject j = new JObject(); j.Add(new JProperty("x", label)); string s = j.ToString(); var sr = new StringWriter(); var jsonWriter = new JsonTextWriter(sr) { StringEscapeHandling = StringEscapeHandling.EscapeNonAscii }; new JsonSerializer().Serialize(jsonWriter, j); Console.Out.WriteLine(sr.ToString()); } } 

salidas

 {"x":"Art. 120 - Incapacit\u00e0 di intendere o di volere"} 

https://dotnetfiddle.net/s5VppR