разобрался можно закрывать..
Если кому интересно получилось вот так:
static void Main(string[] args)
{
string LuaText = @"\206\240\243\230\232\229 \209\236\229\240\242\232"; // Входная строка
char[] a = LuaText.ToCharArray(); // Переводим строку в массив символов
List<byte> bytes = new List<byte>(); // Создаем массив байт
string chars = ""; // создаем переменную для запеси символов
for (int i = 0; i < a.Length; i++) // Проходим в цикле по массиву символов
{
if (Char.IsNumber(a[i]) && a[i] != '\\') // Если символ равен числу И НЕ РАВЕН \ то записываем его в переменную chars
{
chars += a[i];
}
else if (Char.IsWhiteSpace(a[i])) // Если символ является пробелом то записываем сразу в массив байт
{
bytes.Add(Convert.ToByte(a[i]));
}
else if (Char.IsPunctuation(a[i]) && a[i] != '\\') // Если символ является знаком пунктуации то сразу записываем в массив байт
{
bytes.Add(Convert.ToByte(a[i]));
}
if (chars.Length == 3) // Доп условие если длина переменной равна 3 то конвертируем ее в байт и записываем в массив поле очищаяем.
{
byte t = Convert.ToByte(chars);
bytes.Add(t);
chars = "";
}
}
Console.WriteLine(DecoderLua(bytes.ToArray())); // Вызываем метод перевода массива байтов в символы
}
public static string DecoderLua(byte[] byteArray)
{
return System.Text.Encoding.GetEncoding(1251).GetString((byteArray)); // Переводим массив байтов в символы
}
Код костыльный но вроде рабочий(Ну и над названием переменных поработать нужно)