During startup of my app, I read configuration values from INI file:
configBuilder.AddIniFile("appsettings.ini");
However, encoding of appsettings.ini
is different from UTF-8 (Windows-1250 in my case). Thus, there is a problem with all configuration values that contain diacritics.
Is there a way how to specify encoding of configuration file so that all configuration values are read properly?
(Changing encoding of appsettings.ini
is not possible in my case.)
Here is what works for me
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();