我正在使用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发送请求时,它响应就像没有找到任何结果......
答案 0 :(得分:2)
可能是编码问题。
String表示UTF-16格式的字符串 补充字符由代理对表示(参见 section字符类中的Unicode字符表示形式 更多信息)。索引值是指char代码单元,所以a 补充字符在字符串中使用两个位置。
尝试encoding the string进入UTF-8,确保您的文件也是UTF-8(我认为在Android Studio中是默认的)。