【发布时间】: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