#html #entities #entity #codec #decoding #error #html-escape

forgiving-htmlescape

一个用于HTML实体编码和解码的库,支持保留不完整实体

1 个不稳定版本

使用旧的Rust 2015

0.1.0 2018年2月26日

#1784 in 文本处理

Apache-2.0 / MIT / MPL-2.0

55KB
729

一个用于Rust的HTML实体编码库

Build Status

示例用法

所有示例假设存在 extern crate htmlescape;use htmlescape::{此处相关的函数};

###编码 htmlescape::encode_minimal() 使用最少的HTML实体对输入字符串进行编码。

let title = "Cats & dogs";
let tag = format!("<title>{}</title>", encode_minimal(title));
assert_eq!(tag.as_slice(), "<title>Cats &amp; dogs</title>");

还有一个 htmlescape::encode_attribute() 函数用于编码作为HTML属性值使用的字符串。

###解码 htmlescape::decode_html() 解码编码的字符串,将HTML实体替换为相应的字符。支持命名、十六进制和十进制实体。返回一个 Result 值,可以是 Ok 中的解码字符串,或者 Err 中的错误。

let encoded = "Cats&#x20;&amp;&#32;dogs";
let decoded = match decode_html(encoded) {
  Err(reason) => panic!("Error {:?} at character {}", reason.kind, reason.position),
  Ok(s) => s
};
assert_eq!(decoded.as_slice(), "Cats & dogs");

###避免分配编码和解码函数都有接受 Writer 输出的形式,而不是返回 String。这些版本可以用于避免分配和复制,如果返回的 String 只是要写入 Writer

无运行时依赖