c#加载列表Unicode字符

本文关键字:字符 Unicode 列表 加载 | 更新日期: 2023-09-27 17:50:12

我想加载一个列表,列表中的一些字符不是正常字符,所以c#将它们替换为"?",我该如何解决这个问题?

谢谢。

System.IO.StreamReader sr = new System.IO.StreamReader(of.FileName);
            string xd = sr.ReadToEnd();
            string[] qt = xd.Split(new string[] { "'r'n" }, StringSplitOptions.RemoveEmptyEntries);
            foreach (string text in qt)
            {
                string[] sn = text.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries);
                listSNL.Items.Add(sn[0]);
                m_Passwords.Add(sn[0], Encoding.ASCII.GetBytes(sn[1]));
            }
            sr.Close();

到目前为止,下面的答案都不起作用,当我从sr.ReadToEnd开始时,它会出错,因为它会自动转换为字符串,我指的是像这样的字符:£&½

c#加载列表Unicode字符

您试过替换这一行吗:

m_Passwords.Add(sn[0], Encoding.ASCII.GetBytes(sn[1]));

和这个:

m_Passwords.Add(sn[0], Encoding.Unicode.GetBytes(sn[1]));

您也可以使用Encoding。UTF8而不是Encoding.Unicode。如果大多数字符为<= 127,则需要更少的字节。