我有一个小的.NET Core控制台应用程序,其中包含一个appsettings.json
文件,其中包含不同的配置部分,一些值包含重音符号(例如á
或ó
)。
当我解析给定的配置部分时,对于那些值我会得到奇怪的字符。
在配置命名空间中是否有选项可以帮助正确解析字符串?
真实例子:
{
"Loc": "https://www.mywebsite.com/image.jpg",
"Caption": "Ocasión - Los mejores vehículos"
},
受深入了解微软配置的启发,我找到了一种解决方案。我的解决方案是将 json 和 xml 结合使用。
在您的 Program.cs 中,您需要添加 xml 加载。例如,我将设置映射到 POCO 的示例:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration(AddDbConfiguration)
.UseStartup<Startup>();
private static void AddDbConfiguration(WebHostBuilderContext context, IConfigurationBuilder builder)
{
var configuration = builder.Build();
builder.AddXmlFile("appsettings.xml");
}
我的 XML 文件:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<ConfigSettings>
<Database>Specialskolekørsel</Database>
<SystemId>1</SystemId>
<EnableAudit>True</EnableAudit>
</ConfigSettings>
</root>
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.Configure<ConfigSettings>(Configuration.GetSection(nameof(ConfigSettings)));
}
我的控制器:
public HomeController(IOptions<ConfigSettings> config)
{
Database = config.Value.Database;
}
现在,丹麦字母ø的显示效果与预期相同。我希望您会发现这个有用。
File
方法默认使用UTF8作为文件编码。 - Panagiotis Kanavos