2016-11-11 23 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

感謝它的工作 –