C# 在JSON中获取磅符号(£;)的值会返回一个问号(?)
我试图在JSON数据中获取一个键的值,但是我收到一个问号作为响应 我的C# 在JSON中获取磅符号(£;)的值会返回一个问号(?),c#,json,C#,Json,我试图在JSON数据中获取一个键的值,但是我收到一个问号作为响应 我的config.json文件: { currency_sign: "£" } 我的代码: public static void readConfig() { var file = File.ReadAllText("config.json"); var file2 = JObject.Parse(file); string currency = file2.SelectToken("curre
config.json
文件:
{
currency_sign: "£"
}
我的代码:
public static void readConfig()
{
var file = File.ReadAllText("config.json");
var file2 = JObject.Parse(file);
string currency = file2.SelectToken("currency_sign").Value<string>();
Console.WriteLine("Currency: " + currency);
}
我还尝试对字符串进行编码:
byte[] bytes = Encoding.Default.GetBytes(currency);
currency = Encoding.UTF8.GetString(bytes);
然而,输出完全相同
为什么我的代码返回的是
?
而不是。
我如何解决这个问题?在控制台之前,尝试将控制台输出编码设置为UTF8。WriteLine
语句:
Console.OutputEncoding = System.Text.Encoding.UTF8;
为
文件.ReadAllText
帮助指定编码参数,如encoding.UTF8
,是否可以回答您的问题?请看。然后在ReadAllText
调用中调用您的文件。@Fluffy什么操作系统?什么样的系统语言?@Fluffy使用simpleConsole.WriteLine(“代码”)
?Windows 10 Pro,C#.Net控制台应用程序我猜值本身必须进行编码,因为JSON可能无法读取它。@Fluffy尝试使用货币符号将整个文件/行写入控制台。
Console.OutputEncoding = System.Text.Encoding.UTF8;