.net - .NET Core 应用配置:指定 INI 文件编码
问题描述
在我的应用程序启动期间,我从 INI 文件中读取配置值:
configBuilder.AddIniFile("appsettings.ini");
但是,编码appsettings.ini
不同于 UTF-8(在我的例子中是 Windows-1250)。因此,所有包含变音符号的配置值都存在问题。
有没有办法指定配置文件的编码以便正确读取所有配置值?
(在我的情况下,更改编码appsettings.ini
是不可能的。)
解决方案
这对我有用
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
var configText = File.ReadAllText("config2.ini", Encoding.GetEncoding("windows-1250"));
var ms = new MemoryStream();
ms.Write(Encoding.Default.GetBytes(configText));
ms.Position = 0;
IConfiguration config = new ConfigurationBuilder()
.AddIniStream(ms)
.Build();
ms.Dispose();
推荐阅读
- c# - Foreach-loop 循环太多次并请求其他模型
- elasticsearch - 在 ES 中运行 Explain API 时没有得到解释结果
- c++ - 循环的声明范围
- php - cart api 仅获取产品的一个详细信息,但我想要每个产品的详细信息(如果存在)
- python - 来自数据立方体的多个像素的平均光谱
- c# - 如何在运行时在窗体中显示继承自 Picturebox 和其他类的实例?
- ios - 如何解决多个命令产生编译错误
- sql - 在 PostgreSQL 中旋转表
- android - Keystore 中的 Android 加密密钥 - 将应用程序移动到新设备
- android - 片段更新文本更改