Как использовать кодировку SHIFT-JIS в Rust?

Согласно этой проблеме Github, в контейнере с кодировкой ржавчины отсутствует SHIFT-JIS. служба поддержки. Как лучше всего декодировать SHIFT-JIS в Rust в свете этого?


person Fredrick Brennan    schedule 07.01.2018    source источник


Ответы (1)


Вместо этого можно использовать encoding_rs::SHIFT_JIS, ящик, созданный для Firefox. ! :)

extern crate encoding_rs;
use encoding_rs::SHIFT_JIS;

fn main() {
    let data = vec![142,75,130,209,130,189,142,169,147,93,142,212,130,198,141,98,138,107,151,222];
    let (res, _enc, errors) = SHIFT_JIS.decode(&data);
    if errors {
        eprintln!("Failed");
    } else {
        println!("{}", res);
    }   
}

Выходы:

錆びた自転車と甲殻類

Обратите внимание, что res — это Cow<'_, str> — вам может понадобиться использовать into_owned() в зависимости от вашего варианта использования.

person Fredrick Brennan    schedule 07.01.2018