C# 扩展ASCII和windows-1252(不同代码)

C# 扩展ASCII和windows-1252(不同代码),c#,encoding,C#,Encoding,我有一个字符串,其中包含“ä”字符。 我的默认编码是1252。字符代码是228。 如何将其转换为扩展ASCII以获得代码为132的字符?您需要使用编码437(请参阅)。这将正确地将扩展ASCII符号“ä”转换为ANSI 1252中的相应字符: using System; using System.Text; namespace helloworld { public class Program { public static void Main(string[] args) {

我有一个字符串,其中包含“ä”字符。 我的默认编码是1252。字符代码是228。
如何将其转换为扩展ASCII以获得代码为132的字符?

您需要使用编码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));
    }
}

}您需要使用编码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));
    }
}

}您需要使用编码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));
    }
}

}您需要使用编码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));
    }
}
}

这个代码生成228132。扩展的ASCII-aka代码页437现在非常奇特

这个代码生成228132。扩展的ASCII-aka代码页437现在非常奇特

这个代码生成228132。扩展的ASCII-aka代码页437现在非常奇特



这个代码生成228132。扩展的ASCII aka代码页437现在非常奇特。

否,Encoding.Convert(Encoding.Default,Encoding.ASCII,bytes)给出的代码是“63”(?)而不是“132”(ä)。您是否尝试过编码。GetEncoding(1252)而不是Encoding.DefaultYes,我用了一整天:)工作?它将所有内容编码到127,然后将超过127的部分替换为63(?)您需要使用代码页437来完成此操作,请参见@Andrey post以及No,Encoding。Convert(Encoding.Default,Encoding.ASCII,bytes)将代码“63”(?)而不是“132”(ä)。您是否尝试过编码。GetEncoding(1252)而不是Encoding。DefaultYes,我已经用了一整天:)工作?它将所有内容编码到127,然后将超过127的部分替换为63(?)您需要使用代码页437来完成此操作,请参见@Andrey post以及No,Encoding。Convert(Encoding.Default,Encoding.ASCII,bytes)将代码“63”(?)而不是“132”(ä)。您是否尝试过编码。GetEncoding(1252)而不是Encoding。DefaultYes,我已经用了一整天:)工作?它将所有内容编码到127,然后将超过127的部分替换为63(?)您需要使用代码页437来完成此操作,请参见@Andrey post以及No,Encoding。Convert(Encoding.Default,Encoding.ASCII,bytes)将代码“63”(?)而不是“132”(ä)。您是否尝试过编码。GetEncoding(1252)而不是Encoding。DefaultYes,我已经用了一整天:)工作?它将所有内容编码到127,然后将超过127的内容替换为63(?)您需要使用代码页437来完成此操作,请参阅@Andrey post,谢谢。是的,它很有异国情调,但看起来不适合条形码打印机:)谢谢。是的,它很有异国情调,但看起来不适合条形码打印机:)谢谢。是的,它很有异国情调,但看起来不适合条形码打印机:)谢谢。是的,它很有异国情调,但看起来不适合条形码打印机:)