You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Uri.parse创建Uri对象时,_countryCode后被添加%0D%0A字符

问题分析与解决

你遇到的%0D%0A是URL编码后的**回车(\r)和换行(\n)**字符,说明你的_countryCode变量里虽然表面看起来是US/IN这类字符串,但实际包含了隐藏的换行/回车符,导致Uri编码时把这些不可见字符转成了%0D%0A。

快速解决方法

直接对_countryCode做字符清理,去掉多余的换行、回车和首尾空白:

方法1:使用trim()清理首尾空白(推荐)

trim()会自动去除字符串首尾的所有空白字符,包括空格、回车、换行:

String cleanedCode = _countryCode.trim();
Uri targetUri = Uri.parse("http://api.geonames.org/countryInfo?country=$cleanedCode&username=medcollapp");

方法2:正则精准移除换行/回车

如果只需要移除换行和回车,保留其他空白(比如中间的空格,不过你的场景应该不需要),可以用正则替换:

String cleanedCode = _countryCode.replaceAll(RegExp(r'[\r\n]'), '');
Uri targetUri = Uri.parse("http://api.geonames.org/countryInfo?country=$cleanedCode&username=medcollapp");

根源排查

建议检查_countryCode的来源:

  • 如果是从输入框获取:可能用户输入时不小心加了回车,或者输入框的处理逻辑带了换行
  • 如果是从文件/本地存储读取:文本文件末尾可能自带换行符,读取时没处理
  • 如果是从API接口获取:响应里的字段可能包含隐藏的换行字符,需要在接收时清理

内容的提问来源于stack exchange,提问作者ShantanuBorkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 20:55:10