String::from_utf8
, но здесь в нём нет необходимости как я понял.U+48 U+65 U+6c U+6c U+6f
и получается тоже самое, что и \x48\x65\x6c\x6c\x6f
- получается всё что нужно это перевести байты в 16 систему.В тексте вопроса ты не оставил объяснений, как ты получил свои числа.
(число * основание^разряд)
, она универсальна для всех позиционных систем счисления.111 = 1 * 2^2 + 1 * 2^1 + 1 * 2^0 = 7
завидую тем, кто ничего не зная, сразу определял невменяемых
fn main() {
let str_bytes = b"Hello";
let data = str_bytes.iter().enumerate().fold(Vec::new(), |mut acc, (i, x)| {
acc.push((*x as u64) * 256u64.pow(i as u32));
acc
});
let dataX = data.iter().fold(String::new(), |mut acc, x| {
acc.push_str(&format!("\\x{:x}", *x as u64)); // Почему-то не экранируется, а дублируется обратный слеш :/
acc.replace("0", "")
});
println!("{dataX:?}"); // "\\x48\\x65\\x6c\\x6c\\x6f"
}