代码之家  ›  专栏  ›  技术社区  ›  BENN1TH

获取文本。toString()将符号更改为Unicode

  •  0
  • BENN1TH  · 技术社区  · 6 年前

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

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

    我想我错过了一些简单的方法来停止自动转换。 我看问题出在哪里;

    @Field(encoded = false, value = "username") String username
    
    2 回复  |  直到 6 年前
        1
  •  0
  •   Avinash Sagar    6 年前

    post请求参数根据内容类型标头进行编码。您应该将内容类型设置为“文本/html”,以防止编码。

    或者,您也可以使用以下代码对值进行解码。

    String result = java.net.URLDecoder.decode(receivedStringValue, "UTF-8");
    
        2
  •  0
  •   BENN1TH    6 年前

    由于服务器实际要求字段为“email”,当我按照以下内容更改Retro-Fit时,工作正常;

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