C#加载列表Unicode字符

时间:2011-04-13 18:41:11

标签: c# unicode

我想加载一个列表,列表中的一些字符不是普通字符,所以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开始时它会出错,因为它会自动转换为字符串而unicode我的意思是:£&½

2 个答案:

答案 0 :(得分:2)

您是否尝试过更换此行:

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

这一个:

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

答案 1 :(得分:1)

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