android - Retrofit 2.1 发布 Cyrillic 字段错误

标签 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 发送请求时,它的响应就像什么也没找到一样......

最佳答案

可能是编码问题。

来自 developers site :

A String represents a string in the UTF-16 format in which supplementary characters are represented by surrogate pairs (see the section Unicode Character Representations in the Character class for more information). Index values refer to char code units, so a supplementary character uses two positions in a String.

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

关于android - Retrofit 2.1 发布 Cyrillic 字段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40543531/

相关文章:

java - 是否可以为整个应用程序设置自定义字体?

android - 在 Android Studio 的编辑文本中自动添加美元符号 ($)

java - Android 和 Java 的 Retrofit REST 客户端不会终止

java - 如何在没有 baseUrl 的情况下设置 Retrofit

node.js - 带有 Postman 请求的 Twilio Webhook

android - 如何使用 SmsManager 发送非英语语言的短信?

android - 在项目中使用 ActionBarSherlock 的问题

java - 在改造中设置字段值

postman - 如何获取 SmartSheet API 的新访问 token

javascript - 如何计算使用Postman返回的json长度?