Rust — Как перенести ‘ uXXXX’ в строку новых байтов

#migration #rust

#миграция #Ржавчина

Вопрос:

Мне интересно, есть ли возможность перевести следующий старый код Rust:

   bytes!("au2028t")
 

На текущий язык. Кажется bytes! , это устарело, b"" но я не вижу способа перевести u2028 в строковый литерал байта.

Ответ №1:

Если вам нужен эквивалент строки true byte, вам нужно будет найти кодировку UTF8 U 2028, например, через

 fn main() {
    for b in "u2028".as_bytes().iter() { print!("\x{:x}", *b) }
}
 

который печатает xe2x80xa8 (т. Е. В Предварительно закодированном виде), поэтому b"axe2x80xa8t" должен работать. Кроме того, приведенное выше намекает на другой метод: вы можете часто использовать "au2028t".as_bytes() , хотя это не будет работать в static контекстах.

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

1. Могу ли я использовать » u2028″.as_bytes()?