【问题标题】:Parsing html and decoding symbols with Dart使用 Dart 解析 html 和解码符号
【发布时间】:2015-09-22 00:30:54
【问题描述】:

我尝试从 url 解析 html。此页面的字符集是“windows-1251”,我的方法编码的输出内容是utf。

我尝试像这样使用 http 和 html 包:

getContentFrom(String uri, {List selectors}) async {
    var htmlForParse, content, html;

    Map headers = {'Content-type':'text/html', 'charset':'windows-1251'};

    htmlForParse = await http.read(uri, headers: headers);

    html = parse(htmlForParse, encoding:'utf-8');
}

http.read 返回:

'<a href="#"><img src="#" alt="Ðîáîò Parrot Jumping Sumo (÷åðíûé)"/></a>'

只有当它尝试从非 utf 字符集页面获取时。

这样的 Dart 代码:https://github.com/Rasarts/mini.parser/blob/master/lib/parser.dart

最后像这样输出“Parrot Jumping Sumo (÷åðíûé)”,但我期待“Parrot Jumping Sumo (черный)”

我能做些什么来修复那个 ÷åðíûé ?

【问题讨论】:

  • 如果您添加应该显示的文本可能会有所帮助。在尝试重新解析之前 文本是否显示正确(西里尔字符)?
  • http.read return: ''。只有当它尝试从非 utf 字符集页面获取时。 Dart code like that我只是使用 print() 函数来查看结果。
  • 请使用edit为您的帖子添加信息;不要为此使用 cmets。另外,应该返回什么?实际上,您似乎完全了解输入输出是什么。
  • "÷åðíûé" 必须是 'черный',才能正确显示在页面上。

标签: html parsing dart decoding utf


【解决方案1】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 2019-12-28
    • 1970-01-01
    相关资源
    最近更新 更多