Encoding.GetEncoding("Cyrillic") 在 .NET 中制作所有文本问号

Encoding.GetEncoding("Cyrillic") making all text question marks in .NET

为什么 txt 被用下面的方法转换成 txt?

???????????? ???????????????? ???????????????????? ?????????????? ???????? ?????? ????????

我相信这以前没有发生过,但我只是看到它在发生。我正在使用 .NET 4.8。

 public static string RemoveAccent(this string txt)

    {
        if(txt == null)
        return txt;

        byte[] bytes = Encoding.GetEncoding("Cyrillic").GetBytes(txt);
        return Encoding.ASCII.GetString(bytes);
    }

文本采用某种 Unicode 编码,以及为什么它的行为与之前使用 ASCII 编码的文本不同。所以我在 GetEncoding 之前在下面做了这个,现在它可以工作了。

if(!txt.IsNormalized(NormalizationForm.FormKD))
            {
                txt= txt.Normalize(NormalizationForm.FormKD);
            }