2016-11-11 2 views
3

私はRetrofit 2.1を使用しています。しかし、キリル文字を含むフィールドを投稿すると、空のレスポンスが返されますが、2-3個のアイテムが返されます。ここにAPIがあります:改装2.1シリルフィールドエラーの投稿

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

そして、rows_dataには、dbが検索して同様の結果に応答するいくつかのキリル文字が含まれています。ここでは例rowsdataです:rowsdata

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

、Вақтはキリル文字であるが、そのサーバーは私の空のリストを与えているので、それが何らかの形でいくつかの文字にそれをエンコードしています。

私はポストマンでこれを確認し、そしてそれは私が所望の結果を示したが、私はレトロフィットを使用して要求を送信するとき、それは何のように応答しているが...

答えて

2

おそらくエンコードの問題が発見されました。 developers siteから

A文字列( 詳細については、文字クラスに セクションのUnicode文字表現を参照 補助文字がサロゲートペアで表されたUTF-16形式の文字列を表します)。インデックス値はcharコード単位を参照するため、 補助文字はStringの2つの位置を使用します。

encoding the stringをUTF-8に試してみてください。あなたのファイルもUTF-8であることを確認してください。

+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

ありがとう –

関連する問題