打印json数据的时候,有时候有中文,但是是乱码的,例如:
原因:
我们在使用litjson时它的编码方式是unicode的,所以我将json转成string输出时显示的是unicode的编码。
这样中文显示是乱码。我们可以将中文的unicode转成能识别的GBK编码,方便打印输出。
解决方法:
方法需要的引用,自动引用就好了
using System.Text.RegularExpressions;
封装的小方法
/// <summary>
/// UTF-8格式json打印乱码 问题解决方式
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public static string JsonUTF8toUnicode(string jsonStr)
{
Regex reg = new Regex(@"(?i)\\[uU]([0-9a-f]{4})");
var str = reg.Replace(jsonStr, delegate (Match m) { return ((char)Convert.ToInt32(m.Groups[1].Value, 16)).ToString(); });
return str;
}
使用方式:
JsonData jsonData = JsonMapper.ToObject(_response.DataAsText);
string jsonStr = jsonData.ToJson();
Debug.Log(JsonUTF8toUnicode(jsonStr));
结果:
对比下: