#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();