dart中的urlencoding

时间:2012-04-20 13:19:36

标签: urlencode dart

是否有在Dart中进行urlencoding的功能?我正在使用XMLHttpRequest对象进行AJAX调用,我需要将url编码为url。

我在dartlang.org上搜索了一下,但没有结果。

5 个答案:

答案 0 :(得分:16)

更新:现在支持the Dart Uri class

中的编码/解码URI

Dart的URI代码放在一个名为dart:uri的单独库中(因此可以在dart:htmldart:io之间共享)。我看起来目前不包含urlencode函数,因此您现在最好的替代方法可能是使用encodeUriComponent的{​​{3}} Dart实现。

答案 1 :(得分:13)

var uri = 'http://example.org/api?foo=some message';
var encoded = Uri.encodeFull(uri);
assert(encoded == 'http://example.org/api?foo=some%20message');

var decoded = Uri.decodeFull(encoded);
assert(uri == decoded);

http://www.dartlang.org/docs/dart-up-and-running/contents/ch03.html#ch03-uri

答案 2 :(得分:12)

我编写了这个小函数来将Map转换为URL编码字符串,这可能就是你要找的。

String encodeMap((Map data) {
  return data.keys.map((key) => "${Uri.encodeComponent(key)}=${Uri.encodeComponent(data[key])}").join("&");
}

答案 3 :(得分:3)

我不认为还有。查看http://unpythonic.blogspot.com/2011/11/oauth20-and-jsonp-with-dartin-web.html和encodeComponent方法。

注意,它也缺少一些字符,需要扩展。 Dart真的应该有这个内置,很容易到达。它实际上可能有它,但我没有找到它。

答案 4 :(得分:1)

Uri.encodeComponent(url); // To encode url
Uri.decodeComponent(encodedUrl); // To decode url