getText.toString() 将符号更改为 Unicode

getText.toString() changes symbols to Unicode

我的应用程序中有一个 edittext 字段,最终用户可以在其中输入他们的电子邮件以进行登录。

当我使用 getText.toString() 获取字段的值时,@ 符号自动转换为 %40 并将传递的值分解为 POST 请求。

我想我缺少一些简单的方法来停止自动转换。 我看到问题在于;

@Field(encoded = false, value = "username") String username

A post 请求参数根据 content-type header 进行编码。您应该将 content-type 设置为 "text/html" 以防止编码。

或者,您也可以使用下面的代码来解码该值。

String result = java.net.URLDecoder.decode(receivedStringValue, "UTF-8");

由于服务器实际要求该字段为 "email",因此当我按照以下方式更改 Retro Fit 时工作正常;

//changed value = "username" to value = "email"
@Field(encoded = false, value = "email") String username