C# Silverlight的ANSI编码实现
我需要在我的Silverlight应用程序中实现一些代码页的编码。特别是我需要从zip存档(正在打开)中读取非英语文件名 Silverlight只包含Unicode编码(Encoding.UTF8,Encoding.Unicode,Encoding.bigendianucode)。Encoding.GetEncoding为其他编码名称引发异常 但我需要一些ANSI代码页(尤其是866)的编码类实现。在桌面上,我可以通过Encoding.GetEncoding(866)获得它 在哪里可以获得最简单的实现C# Silverlight的ANSI编码实现,c#,silverlight,encoding,utf-8,codepages,C#,Silverlight,Encoding,Utf 8,Codepages,我需要在我的Silverlight应用程序中实现一些代码页的编码。特别是我需要从zip存档(正在打开)中读取非英语文件名 Silverlight只包含Unicode编码(Encoding.UTF8,Encoding.Unicode,Encoding.bigendianucode)。Encoding.GetEncoding为其他编码名称引发异常 但我需要一些ANSI代码页(尤其是866)的编码类实现。在桌面上,我可以通过Encoding.GetEncoding(866)获得它 在哪里可以获得最简单
p、 我知道这个问题与Silverlight几乎没有关系,但不提它,我建议我使用Encoding.GetEncoding我想..从你可以建立一个地图并将你的东西转换成UTF-8。从你可以建立一个地图并将你的东西转换成UTF-8。多亏了@Bala\R,我得到了866码页并写下:
private byte[] translateInto866(string fileName)
{
const byte startCode1 = 128; // А, 0410
const byte startCode2 = 224; // р, 0440
var result = new byte[fileName.Length];
int i = 0;
foreach (char c in fileName)
{
if (c >= 'А' && c <= 'п')
{
result[i] = (byte)(((byte)(c - 'А')) + startCode1);
}
else if (c > 'п' && c <= 'я')
{
result[i] = (byte)(((byte)(c - 'р')) + startCode2);
}
else
{
result[i] = (byte) c;
}
i++;
}
return result;
}
private byte[]translateInto866(字符串文件名)
{
常量字节startCode1=128;//А,0410
常量字节startCode2=224;//П,0440
var result=新字节[fileName.Length];
int i=0;
foreach(文件名中的字符c)
{
如果(c>='А'&&c'П'&&c多亏了@Bala_R,我得到了866码页并写下:
private byte[] translateInto866(string fileName)
{
const byte startCode1 = 128; // А, 0410
const byte startCode2 = 224; // р, 0440
var result = new byte[fileName.Length];
int i = 0;
foreach (char c in fileName)
{
if (c >= 'А' && c <= 'п')
{
result[i] = (byte)(((byte)(c - 'А')) + startCode1);
}
else if (c > 'п' && c <= 'я')
{
result[i] = (byte)(((byte)(c - 'р')) + startCode2);
}
else
{
result[i] = (byte) c;
}
i++;
}
return result;
}
private byte[]translateInto866(字符串文件名)
{
常量字节startCode1=128;//А,0410
常量字节startCode2=224;//П,0440
var result=新字节[fileName.Length];
int i=0;
foreach(文件名中的字符c)
{
如果(c>='А'&&c'П'&&c@Bala R:谢谢!这变得非常简单。我希望你的回答是“回答”而不是评论。“ANSI”到底是什么意思?@tchrist的意思是“ANSI代码页”或“Windows代码页”。请看@Bala R:谢谢!这变得非常简单。我希望你的回答是“回答”而不是评论。这到底是什么意思“ANSI”的意思是?@tchrist,意思是“ANSI代码页”或“Windows代码页”。请参阅