#escaping #html #encode #decode #html-text

no-std html-escape

此库用于编码/转义HTML中的特殊字符,以及解码/反转义HTML实体。

15个版本

0.2.13 2022年12月23日
0.2.12 2022年11月2日
0.2.11 2022年3月17日
0.2.9 2021年4月21日
0.1.0 2020年6月26日

#25编码 中排名

Download history 79724/week @ 2024-04-23 72821/week @ 2024-04-30 67003/week @ 2024-05-07 64273/week @ 2024-05-14 63834/week @ 2024-05-21 62298/week @ 2024-05-28 59787/week @ 2024-06-04 61094/week @ 2024-06-11 65194/week @ 2024-06-18 62886/week @ 2024-06-25 60247/week @ 2024-07-02 64767/week @ 2024-07-09 62563/week @ 2024-07-16 59962/week @ 2024-07-23 67006/week @ 2024-07-30 67896/week @ 2024-08-06

269,729 每月下载量
573 个 (170 直接) 软件包中使用

MIT 许可证

140KB
4K SLoC

HTML Escape

CI

此库用于编码/转义HTML中的特殊字符,以及解码/反转义HTML实体。

用法

编码

此软件包提供了一些 encode_* 函数来在不同情况下编码HTML文本。

例如,要在开始标签 <foo> 和结束标签 </foo> 之间放置文本,使用 encode_text 函数来转义文本中的每个 &<>

assert_eq!("a &gt; b &amp;&amp; a &lt; c", html_escape::encode_text("a > b && a < c"));

带有 _to_writer_to_vec_to_string 后缀的函数对于生成HTML非常有用。

let mut html = String::from("<input value=");
assert_eq!("Hello&#x20;world&#x21;", html_escape::encode_unquoted_attribute_to_string("Hello world!", &mut html));
html.push_str(" placeholder=\"");
assert_eq!("The default value is &quot;Hello world!&quot;.", html_escape::encode_double_quoted_attribute_to_string("The default value is \"Hello world!\".", &mut html));
html.push_str("\"/><script>alert('");
assert_eq!(r"<script>\'s end tag is <\/script>", html_escape::encode_script_single_quoted_text_to_string("<script>'s end tag is </script>", &mut html));
html.push_str("');</script>");

assert_eq!("<input value=Hello&#x20;world&#x21; placeholder=\"The default value is &quot;Hello world!&quot;.\"/><script>alert(\'<script>\\\'s end tag is <\\/script>\');</script>", html);

解码

assert_eq!("Hello world!", html_escape::decode_html_entities("Hello&#x20;world&#x21;"));
assert_eq!("alert('<script></script>);'", html_escape::decode_script(r"alert('<script><\/script>);'"));

无需Std

禁用默认功能以在不使用std的情况下编译此软件包。

[dependencies.html-escape]
version = "*"
default-features = false

基准测试

cargo bench

Crates.io

https://crates.io/crates/html-escape

文档

https://docs.rs/html-escape

许可证

MIT

依赖项