C # Шестнадцатеричное преобразование в символ

#c#

#c#

Вопрос:

У меня есть шестнадцатеричная строка длиной 4, например «003a».

Каков наилучший способ преобразовать это в символ? Сначала преобразовать в байты, а затем в символ?

Ответ №1:

Попробуйте это:

 (char)Int16.Parse("003a", NumberStyles.AllowHexSpecifier);
 

или

 System.Convert.ToChar(System.Convert.ToUInt32("003a", 16));
 

или

 string str = "";
for(int i = 0; i<myHex.Length; i  = 4)
    str  = (char)Int16.Parse(myHex.Substring(i, 4), 
                             NumberStyles.AllowHexSpecifier);
 

Комментарии:

1. Спасибо. Вот рабочий код: char hexchar = (char)Int16.Parse(«003a», NumberStyles. AllowHexSpecifier);

2. Система. Преобразовать. ToUint32(«003a»)—>Система. Преобразовать. ToUint32(«003a», 16)

3. В системе. Преобразовать. ToChar(System. Преобразовать. ToUint32(«003a»)); вам нужно предоставить второй параметр для ToUint32, как System. Преобразовать. ToChar(System. Преобразовать. ToUint32(«003a», 16));

Ответ №2:

В 2020 году я бы сделал это так

 char c = (char)0x3A;
 

Если бы мне нужно было, чтобы это была строка для использования при удалении непечатаемого символа, это было бы так

 s = s.Replace($"{(char)0x3A}", ""));
 

Ответ №3:

Сначала проанализируйте его с помощью Int32.Parse() , затем используйте Convert.ToChar() .

Ответ №4:

Вы можете использовать следующий код:

 label1.Text = System.Convert.ToChar(System.Convert.ToUInt32("0x00AC", 16)).ToString();