Skip to content

Latest commit

 

History

History
31 lines (20 loc) · 1.09 KB

hex.zh.md

File metadata and controls

31 lines (20 loc) · 1.09 KB

编码和解码十六进制

[![data-encoding-badge]][data-encoding] [![cat-encoding-badge]][cat-encoding]

这个data_encoding箱子提供一个HEXUPPER::encode方法,它会获取一个&[u8],并返回一个String,其中包含数据的十六进制表示形式。

类似地,一个HEXUPPER::decode提供的方法,也获取一个&[u8],并如果输入数据解码成功的话,就返回一个Vec<u8>

下面的例子,将&[u8]数据转换为等效十六进制。将此值与预期值,进行比较。

extern crate data_encoding;

use data_encoding::{HEXUPPER, DecodeError};

fn main() -> Result<(), DecodeError> {
    let original = b"The quick brown fox jumps over the lazy dog.";
    let expected = "54686520717569636B2062726F776E20666F78206A756D7073206F76\
        657220746865206C617A7920646F672E";

    let encoded = HEXUPPER.encode(original);
    assert_eq!(encoded, expected);

    let decoded = HEXUPPER.decode(&encoded.into_bytes())?;
    assert_eq!(&decoded[..], &original[..]);

    Ok(())
}