使用ConfigurationBuilder读取appsettings.json时重音字符乱码问题
解决ConfigurationBuilder读取JSON配置的编码乱码问题
问题根源
出现P�le emploi这类乱码,核心是JSON文件编码与读取时使用的编码不匹配。默认情况下AddJsonFile会按UTF-8编码解析文件,但如果你的appsettings.json是用其他编码(比如ANSI)保存的,特殊字符就会解析出错。
解决步骤
1. 修正JSON文件的编码格式
右键appsettings.json文件 → 用记事本打开 → 点击「文件」→「另存为」,在编码下拉菜单选择「UTF-8」,覆盖原文件保存。
2. 代码中显式指定读取编码
修改AddJsonFile方法,添加编码参数强制指定UTF-8读取:
var builder = new ConfigurationBuilder() .SetBasePath(AppDomain.CurrentDomain.BaseDirectory) .AddJsonFile(Path.Combine(Helper.jsonpath, "appsettings.json"), optional: false, reloadOnChange: false, encoding: System.Text.Encoding.UTF8); // 显式指定UTF-8编码 Helper.config = builder.Build();
验证效果
修改后重新读取配置,三种方式都能正确获取Pôle emploi:
var tt = Helper.config.GetSection("partooApi:types:APE").GetValue<string>("title"); var ttt = Helper.config["partooApi:types:APE:title"]; var tttt = Helper.config.GetSection("partooApi:types:APE:title").Get<string>();
内容的提问来源于stack exchange,提问作者Frenchy
相关产品推荐
相关产品推荐

