C# 读取c中包含umlaut的Json文件#

C# 读取c中包含umlaut的Json文件#,c#,json,json.net,C#,Json,Json.net,我正在尝试读取包含c#中的umlaut的Json文件,以下是该文件的格式: { "BankCodeOertlich": "59000000", "BicOertlich": "", "ErgaenzungName": "Außenst. Sulzbach", "HauptstelleAussenstellen": "Außenstelle v. Finanzamt Saarbrücken Am" } 我使用以下代码读取c#中的json: 这只是一个示例,不是实际

我正在尝试读取包含c#中的umlaut的Json文件,以下是该文件的格式:

{
    "BankCodeOertlich": "59000000",
    "BicOertlich": "",
    "ErgaenzungName": "Außenst. Sulzbach",
    "HauptstelleAussenstellen": "Außenstelle v. Finanzamt Saarbrücken Am"
}
我使用以下代码读取c#中的json:


这只是一个示例,不是实际输出。我试图更改为StreamReader的编码,但它不起作用。有更好的方法吗?

文件不是用UTF8编码的,请尝试使用Encoding.GetEncoding(“iso-8859-1”)。

您的JSON文件是用unicode编码保存的吗?确保数据是真正的unicode。NET内部使用Unicode,流类默认使用UTF8。最有可能的情况是,数据是ASCII,系统的区域设置无法处理所有拉丁字符。您确定该文件确实是用UTF8编码的吗?尝试
Encoding.GetEncoding(“iso-8859-1”)
instead尝试了默认值和ASCII码,但仍然显示相同@克拉登:我在保存文件时没有指定编码file@AmanullahTariq这意味着您没有读取UTF8文件。文件已转换为ASCII,或者您没有使用指定的代码保存它。您是否在文本编辑器中编辑了它,并将其保存为ASCII?
public static List<T> Load<T>(string filePath)
{
    using (var stream = File.OpenRead(filePath))
    {
        var reader = new StreamReader(stream, Encoding.UTF8);
        List<T> data = JsonConvert.DeserializeObject<List<T>>(reader.ReadToEnd());
        return data;
    }
}
{
    "BankCodeOertlich": "59000000",
    "BicOertlich": "",
    "ErgaenzungName": "Au?enst. Sulzbach",
    "HauptstelleAussenstellen": "Au?enstelle v. Finanzamt Saarbr?cken Am"
}