提问人:Eric Qiang 提问时间:9/20/2023 最后编辑:Eric Qiang 更新时间:9/20/2023 访问量:59
C# 不可逆字符串编码转换
C# irreversible string encoding conversion
问:
我使用库解析一个简单的json文件,内容用UTF-8编码,然后我发现这个令人困惑的事情:Newtonsoft.Json
{"key": "强回声"}
byte[] data_utf8 = { 123, 34, 107, 101, 121, 34, 58, 32, 34, 229, 188, 186, 229, 155, 158, 229, 163, 176, 34, 125 };
Console.WriteLine(string.Join(", ", data_utf8));
Console.WriteLine(Encoding.UTF8.GetString(data_utf8));
var Ansi_String = Encoding.Default.GetString(data_utf8);
var Ansi_bytes = Encoding.Default.GetBytes(Ansi_String);
Console.WriteLine(string.Join(", ", Ansi_bytes));
Console.WriteLine(Encoding.UTF8.GetString(Ansi_bytes));
输出:
123, 34, 107, 101, 121, 34, 58, 32, 34, 229, 188, 186, 229, 155, 158, 229, 163, 176, 34, 125
{"key": "强回声"}
123, 34, 107, 101, 121, 34, 58, 32, 34, 229, 188, 186, 229, 155, 158, 229, 163, 63, 125
{"key": "强回??}
问题是如果我有喜欢,可以恢复吗?string
Ansi_String
---- UPDATE ----
我使用的是中文语言环境系统,所以上面的代码应该替换
Encoding.Default => Encoding.GetEncoding("gb2312")
答: 暂无答案
评论
??
?
Encoding.Default