【问题标题】:Retrofit 2.1 Posting Cyrillic Field Error改造 2.1 发布西里尔文字段错误
【发布时间】:2016-11-11 07:58:11
【问题描述】:

我正在使用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 发送请求时,它的响应就像没有找到一样......

【问题讨论】:

    标签: android retrofit postman cyrillic


    【解决方案1】:

    可能是编码问题。

    来自developers site

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 2011-06-11
    • 2013-05-19
    • 1970-01-01
    相关资源
    最近更新 更多