Ну, нам нужно разобрать : каждый "\xa9"
должен быть преобразован в byte
0xa9
const string nameString = @"\xda\xa9\xd8\xa7\xd8\xb1\xd8\xa8\xd8\xb1";
Мы можем сделать это с помощью регулярные выражения :
byte[] data = Regex
.Matches(nameString, @"\\x(?<value>[0-9a-fA-F]{1,2})")
.Cast<Match>()
.Select(match => (Convert.ToByte(match.Groups["value"].Value, 16)))
.ToArray();
Давайте посмотрим на данные:
// da a9 d8 a7 d8 b1 d8 a8 d8 b1
Console.WriteLine(string.Join(" ", data.Select(b => b.ToString("x2"))));
Наконец, мы хотим закодировать data
в строку;при условии, что мы должны использовать UTF8
:
string name = Encoding.UTF8.GetString(data);
Console.WriteLine(name);
Результат:
کاربر