改造2.1发布西里尔字段错误

时间:2016-11-11 07:58:12

标签: android retrofit postman cyrillic

我正在使用Retrofit 2.1。但是当我发布一个包含西里尔字的字段时,它会给出一个空的响应,但它应该返回2-3个项目。这是api:

@FormUrlEncoded
@POST("my_awesome_base_url")
Call<Questions> getQuestions(@Field(value = "rowsdata", encoded = false) String rowsdata);

并且rowsdata包含db应该搜索并响应类似结果的一些西里尔字。以下是rowsdata示例:

rowsdata = {"code":"-4","start":"1","where":"where  short_question like 'Вақт' ","end":"2"}

rowsdata中,Вақт是西里尔字母,但它以某种方式将其编码为某些字符,以便服务器给我一个空列表。

我在Postman上检查了这个,它给了我想要的结果,但是当我使用Retrofit发送请求时,它响应就像没有找到任何结果......

1 个答案:

答案 0 :(得分:2)

可能是编码问题。

来自developers site

  

String表示UTF-16格式的字符串   补充字符由代理对表示(参见   section字符类中的Unicode字符表示形式   更多信息)。索引值是指char代码单元,所以a   补充字符在字符串中使用两个位置。

尝试encoding the string进入UTF-8,确保您的文件也是UTF-8(我认为在Android Studio中是默认的)。