FDB*_*FDB 4 c# json character-encoding json.net
下面的代码产生这个输出:
{"x": "Art. 120 - Incapacità di intendere o di volere"}
Run Code Online (Sandbox Code Playgroud)
我需要改变这个,我想我要改变编码的东西,但我不知道:
{"x": "Art. 120 - Incapacit\u00e0 di intendere o di volere"}
Run Code Online (Sandbox Code Playgroud)
码:
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();
}
Run Code Online (Sandbox Code Playgroud)
像其他人说的那样,你想使用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());
}
}
Run Code Online (Sandbox Code Playgroud)
输出
{"x":"Art. 120 - Incapacit\u00e0 di intendere o di volere"}
Run Code Online (Sandbox Code Playgroud)
https://dotnetfiddle.net/s5VppR
| 归档时间: |
|
| 查看次数: |
3022 次 |
| 最近记录: |