"Pl\u00e4ne" 更新: 在 sra anwser 之后,我想出了以下对我有用的代-6ren">
gpt4 book ai didi

.net - 在 JSON.NET 中编码变音

转载 作者:行者123 更新时间:2023-12-01 01:29:03 25 4
gpt4 key购买 nike

是否可以在 JSON.NET 中用变音符号对字符串进行编码,序列化的字符串是这样编码的?

"Pläne"=> "Pl\u00e4ne"

更新:
在 sra anwser 之后,我想出了以下对我有用的代码。

public class Utf8Converter : JsonConverter
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
string s = (string)value;
s = EncodeNonAsciiCharacters(s);
writer.WriteValue(s);
}

public override object ReadJson(JsonReader reader, Type objectType, object existingValue,
JsonSerializer serializer)
{
throw new NotImplementedException();
}

public override bool CanConvert(Type objectType)
{
return typeof(string).IsAssignableFrom(objectType);
}


private static string EncodeNonAsciiCharacters(string value)
{
StringBuilder sb = new StringBuilder();
foreach (char c in value)
{
if (c == '\t')
sb.Append(@"\t");
else if (c == '\n')
sb.Append(@"\n");
else if (c == '\r')
sb.Append(@"\r");
else if (c > 127)
{

string encodedValue = @"\u" + ((int)c).ToString("x4");
sb.Append(encodedValue);
}
else
{
sb.Append(c);
}
}
return sb.ToString();
}



}

最佳答案

是的,您可以使用为您执行此操作的自定义转换器

internal class CustomConverter : JsonConverter
{
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
// your code
}

public override bool CanConvert(Type objectType)
{
// your code
}

public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
// your code
}
}

关于.net - 在 JSON.NET 中编码变音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5953730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com