将十六进制字符串转换为字符

8

我知道这方面有很多话题,但是尽管我查看了很多话题,仍然无法找到解决方案。 我正在将char转换为hex,如下所示:

char c = i;
int unicode = c;
string hex = string.Format("0x{0:x4}", unicode);

问题:如何将16进制转换为字符并恢复原来的值?


你是在问一个十六进制字符串吗? - Oded
是的,我想将“string hex”转换回char。 - Min0
2个回答

20

你可以尝试:

hex = hex.Substring(2); // To remove leading 0x
int num = int.Parse(hex, NumberStyles.AllowHexSpecifier);
char cnum = (char)num;

谢谢@Oded,我没有看到前导的“0x”,是我的错误。 - Marco

3
using System;
using System.Globalization;

class Sample {
    static void Main(){
        char c = 'あ';
        int unicode = c;
        string hex = string.Format("0x{0:x4}", unicode);
        Console.WriteLine(hex);
        unicode = int.Parse(hex.Substring(2), NumberStyles.HexNumber);
        c = (char)unicode;
        Console.WriteLine(c);
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接