2016-11-11 57 views
3

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

@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,Вақт是斯拉夫语,但不知何故,编码一些字符,这样服务器是给我一个空列表。

我选中此上邮递员,它给了我想要的结果,但是当我发送邮件使用改造的请求,这是应对像什么发现?

回答

2

可能的编码问题。

developers site

的String表示其中 补充字符由代理对表示的UTF-16格式的字符串(参见Character类的 部的Unicode字符表示为 更多信息)。索引值引用char代码单元,因此 补充字符在字符串中使用两个位置。

尝试将encoding the string转换为UTF-8,确保您的文件是UTF-8(在Android Studio中我认为是默认值)。

+0

如何在Android Studio中“确保”我的文件是UTF-8? –

+0

https://blog.jetbrains.com/idea/2013/03/use-the-utf-8-luke-file-encodings-in-intellij-idea/ – Gordak

+0

感谢它的工作 –