gpt4 book ai didi

c# - Json 到 C# 没有正确反序列化货币符号

转载 作者:行者123 更新时间:2023-12-05 06:29:47 24 4
gpt4 key购买 nike

我将 C# WebApi 与 .NET Core 2.1 结合使用。我在 appsetting.json 文件中有一个 JSON 属性,当它通过 AddOptions 反序列化为 c# 时,£ 符号更改为 �

我可以向 AddJsonOptions 添加设置以确保此符号未更改吗?

JSON"SomeProperty": "英镑",

C# 属性SomeProperty="磅�"

最佳答案

(解决方案从问题迁移到答案):

我通过在记事本中打开文件并使用 UTF-8 编码保存它来解决这个问题。在 VS 中保存文件时,它保留了 UTF-8 编码。不确定 Visual Studio 在创建 appsetting 文件时在做什么,但这在过去似乎是个问题。 https://github.com/aspnet/Configuration/issues/241作为记录,我在 Windows 10 上使用 VS2017 15.8.4

应用程序设置

{
"SftpConfigList": {
"SftpConfigs": [
{
"Host": "somehost1",
"Username": "foo",
"Password": "okokokok"
},
{
"Host": "somehost2",
"Username": "bar",
"Password": "pass£££word"
}
]
}
}


namespace WebApplication1
{
public class SftpConfigListDto
{
public SftpConfigDto[] SftpConfigs { get; set; }
}

public class SftpConfigDto
{
public string Host { get; set; }
public string Username { get; set; }
public string Password { get; set; }
}
}

启动

public void ConfigureServices(IServiceCollection services)
{
services.AddOptions();
services.Configure<SftpConfigListDto>(Configuration.GetSection("SftpConfigList"));
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}

关于c# - Json 到 C# 没有正确反序列化货币符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53199750/

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