在我的Silverlight应用程序中,我得到一个用windows-1252编码的XML文件。 现在我的问题是它将无法正确显示,直到windows-1252字符串转换为UTF8字符串。 在一个普通的C#环境中,这不是一个大问题:我可以做这样的事情:
Encoding wind1252 = Encoding.GetEncoding(1252);
Encoding utf8 = Encoding.UTF8;
byte[] wind1252Bytes = ReadFile(Server.MapPath(HtmlFile));
byte[] utf8Bytes = Encoding.Convert(wind1252, utf8, wind1252Bytes);
string utf8String = Encoding.UTF8.GetString(utf8Bytes);
(Convert a string's character encoding from windows-1252 to utf-8)
但是silverlight不支持windows-1252 - 它只是unicode。
PS 我偶然发现了“编码Silverlight”http://encoding4silverlight.codeplex.com/ - 但似乎没有对Windows-1252的支持吗?
修改 我在“服务器端”解决了我的问题 - 实际问题仍然存在。
答案 0 :(得分:1)
Encoding for Silverlight
是第三方编码系统,但现在仅支持所有DBCS (Double-Byte Character Set)
。但是,windows-1252是SBCS (Single-Byte Character Set)
。
但你可以为Encoding for Silverlight
编写一个编码器/解码器,我觉得这很容易。