在Silverlight中将windows-1252编码转换为UTF-8

时间:2013-09-17 07:37:38

标签: c# silverlight encoding utf-8 windows-1252

在我的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的支持吗?

修改 我在“服务器端”解决了我的问题 - 实际问题仍然存在。

1 个答案:

答案 0 :(得分:1)

Encoding for Silverlight是第三方编码系统,但现在仅支持所有DBCS (Double-Byte Character Set)。但是,windows-1252是SBCS (Single-Byte Character Set)

但你可以为Encoding for Silverlight编写一个编码器/解码器,我觉得这很容易。