Страницы

Поиск по вопросам

вторник, 9 июля 2019 г.

Преобразование кода в символы

Как преобразовать код в символы, уже только какие костыли не приделал все равно что то да не работает
Пробовал так..
namespace test { class MainClass { public static void Main (string[] args) { //1 вариант string[] arrayCode = {"6c", "52"}; Console.WriteLine (Encoding.GetString(BitConverter.GetBytes(Convert.ToInt32(arrayCode[0])))); //2 вариант Encoder.ToChar(arrayCode[i]); } } }
Выдает ошибку
1) an object reference is required to access non-static member 2) коды русских символов не помещаются в char, тут ошибка превышения размера
1 - Не понимаю что он хочет( 2 - Может это можно решить через char?


Ответ

Например, так:
string[] arrayCode = {"6c", "52"}; var bytes = arrayCode.Select(s => Convert.ToByte(s, 16)); var result = Encoding.UTF8.GetString(bytes.ToArray());
(для UTF-8).

Если в строках не байты, а целые символы, по идее пойдёт такой код:
static void Main(string[] args) { string[] arrayCode = {"6c", "52", "90d0"}; var chars = arrayCode.Select(s => ExtractChar(s, Encoding.UTF8)); var result = new string(chars.ToArray()); }
static char ExtractChar(string s, Encoding enc) { var code = Convert.ToInt32(s, 16); var bytes = BitConverter.GetBytes(code); var nbytes = (s.Length + 1) / 2; var result = enc.GetString(bytes, 0, nbytes); if (result.Length != 1) throw new ArgumentException("В строке не один символ"); return result[0]; }

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

Отправить комментарий