Dart encodeFull 问题

Dart encodeFull issue

当我将 uri 从整数编码为字符串时。 Dart 将这个 %E2%80%8B 值放在数字之前。是什么原因?为什么飞镖把这个值放在数字之前?我不能像那样从 url 发送参数。

const number = 15;
String uri = Uri.encodeFull("https://google.com/${number}");
print(uri);

我得到了这个输出https://google.com/15%E2%80%8B为什么??检查 link uri 有一个 space 结尾。当它像这样工作时,我不能调用 api 因为它不是整数值。

是 bug 还是什么?

请添加更多信息,我已经测试了您的代码,它运行正常。

 var number=1234;
 var k=Uri.encodeFull("https://google.com/${number}");

输出:https://google.com/1234

%E2%80%8B表示一个十六进制字节序列E2808B。该序列对应于 Unicode "zero width space" character (U+200B).

的 UTF-8 表示

我怀疑您从某处复制并粘贴了您的字符串,无意中包含了一个不可见的 Unicode 字符。删除并重新输入 "https://google.com/${number}" 字符串文字的最后部分应该可以解决问题。