C# - преобразовать строку UTF8 в биты, изменить биты и преобразовать обратно в строку UTF8 - PullRequest
0 голосов
/ 21 июня 2020

Для проекта, над которым я работаю, мне нужно иметь возможность преобразовывать строку UTF8 в биты или байты для модификации и обратно. (Тип бит / байт не имеет значения .. '138', '00000001' или '0A' - если я могу изменить его как строку и преобразовать байты обратно в строку)

Я пробовал несколько вещей, но ничего не помогло. По большей части я пытался взять результат File.ReadAllBytes(path) и преобразовать байты в изменяемую строку и обратно, но безуспешно. Также попытался сделать то же самое, используя тестовую строку в BitArray, но безуспешно.

Вот что я пытаюсь сделать в лучшем примере (псевдокод)

string input = "ABC";

Byte[] bytes = StringToBytes(input);
Byte[] bytes2;

string bytestring;
foreach (Byte byte in bytes) {
    bytestring = byte.ToString();
    /// modify bytestring to the value of a different byte here ///
    bytes2.Add(bytestring.ToByte());
}

return BytesToString(bytes2);

Return : 'ACD' (или что угодно)

1 Ответ

0 голосов
/ 21 июня 2020

Если вы пытаетесь прочитать файл в массиве byte [], изменить эти байты и преобразовать их обратно в строку, вы можете сделать что-то вроде этого:

// read the file into a byte array
var bytes = File.ReadAllBytes(inputFileName);

// modify the bytes

// now convert back to a UTF string
var stringFromByteArray = Encoding.UTF8.GetString(bytes, 0, bytes.Length);
...