在我的silverlight应用程序中无法正确编码。 我需要支持西欧的字母,如æ,ø,å,â等(Latin1 ??)。 但我无法做到对。什么应该而不是SOMEENCODINGHERE?确实尝试过 编码enc = Encoding.GetEncoding(“Latin1”);但没有我用作param的名字被认可=(。 如果我使用Encoding.Unicode tr.ReadLine()读取整个文件并由于某种原因将其转换为中文。
private Dictionary<int, string> InitDictionary()
{
var d = new Dictionary<int, string>();
var sri = App.GetResourceStream(new Uri(fileDic, UriKind.Relative));
using (TextReader tr = new StreamReader(sri.Stream, Encoding.SOMEENCODINGHERE))
{
int i = 0;
string line;
while ((line = tr.ReadLine()) != null)
{
d.Add(i++, line);
}
}
return d;
}
答案 0 :(得分:2)
如果你真的想要ISO-Latin-1,你可以使用
Encoding.GetEncoding(28591);
但正常的Windows西欧代码页是1252:
Encoding.GetEncoding(1252);
您绝对确定这是您的信息流的编码吗?现在使用UTF-8更常见。是什么生成了您的文本资源?
答案 1 :(得分:0)
Silverlight(1-4,不知道大约5)不支持ANSI编码(codepages)。它仅支持Unicode编码:UTF8和UTF16
有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/system.text.encoding%28VS.95%29.aspx
所以建议使用Encoding.GetEncoding(1252)和任何其他代码页编号不工作。
您必须为所需的代码页实现Encoding类。
如果您找到了合适的实施方案,请分享,我会感兴趣。