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

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

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() в зависимости от вашего варианта использования.

Другие вопросы по тегам