似乎Dart没有提供默认机制(或者至少我找不到它)来解码HTML转义实体.
我想做的是转换例如.Q&A到Q&A.(这只是一个例子)
由于1.11.1版本,飞镖转换编码这些像这样.
从那里创建自定义转换器实现相当简单,但不会涵盖所有用例.如:如果<以十六进制值表示,该<怎么办?
有人有一些漂亮的解决方案
只需使用HTML 解析器库:
import 'package:html/parser.dart';
main() {
print(parseFragment('Q&A').text); // Q&A
}
Run Code Online (Sandbox Code Playgroud)
我刚刚为了这个目的制作了一个小而完整的Dart库:html_unescape.
它支持:
)
á)ã)import 'package:html_unescape/html_unescape.dart';
main() {
var unescape = new HtmlUnescape();
var text = unescape.convert("<strong>This "escaped" string");
print(text);
}
Run Code Online (Sandbox Code Playgroud)
您还可以使用转换器转换流.例如,下面的代码将POSIX stdin转换为HTML-unncoded stdout.
await stdin
.transform(new Utf8Decoder())
.transform(new HtmlUnescape())
.transform(new Utf8Encoder())
.pipe(stdout);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1932 次 |
| 最近记录: |