我想加载一个列表,列表中的一些字符不是普通字符,所以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我的意思是:£&½
答案 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,则需要更少的字节。