我有一个字符串,其中包含“ä”字符。 我的默认编码是1252.而char代码是228。 如何将其转换为扩展ASCII以使此代码为132?
答案 0 :(得分:2)
var s = "ä";
var extAscii = Encoding.GetEncoding ("437");
var enc1252 = Encoding.GetEncoding (1252);
var bytes = enc1252.GetBytes (s);
Console.WriteLine (bytes[0]);
var newBytes = Encoding.Convert (enc1252, extAscii, bytes);
Console.WriteLine (newBytes[0]);
此代码生成228,132。扩展ASCII aka代码页437现在非常具有异国情调。
答案 1 :(得分:1)
您需要使用编码437(请参阅https://en.wikipedia.org/wiki/Code_page_437)。然后,这将正确地将扩展ASCII符号“ä”转换为ANSI 1252中的相应字符:
using System;
using System.Text;
namespace helloworld
{
public class Program
{
public static void Main(string[] args)
{
string text = "ä";
byte[] bytes = Encoding.GetEncoding(1252).GetBytes(text);
var convertedBytes = Encoding.Convert(Encoding.GetEncoding(1252),Encoding.GetEncoding(437), bytes);
Console.WriteLine(Encoding.GetEncoding(437).GetString(convertedBytes));
}
}
}