.NET에서 모든 텍스트 물음표를 만드는 Encoding.GetEncoding ( "Cyrillic")

Oct 16 2020

𝗜𝗡𝗗𝗢𝗢𝗥 𝗦𝗢𝗙𝗧𝗕𝗔𝗟𝗟 𝗧𝗢𝗨𝗥𝗡𝗔𝗠𝗘𝗡𝗧 𝗗𝗜𝗔𝗠𝗢𝗡𝗗 𝗝𝗔𝗫𝗫 𝗔𝗡𝗗 𝗛𝗜𝗧𝗭아래 방법으로 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);
    }

답변

MikeFlynn Oct 16 2020 at 23:36

텍스트는 일종의 유니 코드 인코딩이며 ASCII 인코딩 텍스트에서 이전과 다르게 작동하는 이유는 무엇입니까? 그래서 나는 GetEncoding 전에 아래에서 이것을했고 지금 작동합니다.

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