将给定的char变量转换为string,在我的编码中表示其代码

时间:2013-02-13 11:49:41

标签: c# string encoding char encode

我想写一个txt文件。有些字符需要以某种方式进行转义:\'c1,其中c1是编码1251的字符的代码。

如何将给定的char变量转换为字符串,在我的编码中表示它的代码?

我找到了一种方法来为utf做这件事,但对其他ecnodings没办法。对于utf变体,有Char.ConvertToUtf32()方法。

2 个答案:

答案 0 :(得分:2)

// get the encoding
Encoding encoding = Encoding.GetEncoding(1251);

// for each character you want to encode
byte b = encoding.GetBytes("" + c)[0];
string hex = b.ToString("x");
string output = @"\'" + hex;

答案 1 :(得分:1)

如何将给定的char变量转换为string,在我的编码中表示它的代码?

尝试这样的事情:

    var enc = Encoding.GetEncoding("Windows-1251");

    char myCharacter = 'д'; // Cyrillic 'd'

    byte code = enc.GetBytes(new[] { myCharacter, })[0];

    Console.WriteLine(code.ToString());      // "228" (decimal)
    Console.WriteLine(code.ToString("X2"));  // "E4" (hex)