正确解码包含 C# 中的 \u003c 或 \u00252 等字符串的文本

EBA*_*BAG 5 c# json

我有一个 JSon 响应,其中包含大量 \u003c 或 \u00252 或其他类似的字符串。我需要一个适当的函数才能将这些字符串解码为正确的字符。

Ind*_*lta 4

有各种关于如何反序列化 JSON 字符串的帖子。 这里展示了一个很好的反序列化通用方法。下面的代码取自那里。

public static T Deserialise<T>(string json)
{
T obj = Activator.CreateInstance<T>();
using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(json)))
{
    DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
    obj = (T)serializer.ReadObject(ms); // <== Your missing line
    return obj;
} 
}
Run Code Online (Sandbox Code Playgroud)

如果您只是在寻找一种将字符串转换为 ASCII 的方法,请重新阅读您的文章,然后查看这篇文章。此代码的原始作者为@Adam Sils

static string DecodeEncodedNonAsciiCharacters( string value ) {
    return Regex.Replace(
        value,
        @"\\u(?<Value>[a-zA-Z0-9]{4})",
        m => {
             return ((char) int.Parse( m.Groups["Value"].Value, NumberStyles.HexNumber )).ToString();
        } );
}
Run Code Online (Sandbox Code Playgroud)