Volley StringRequest 响应更改撇号的值('更改为â)
Posted
技术标签:
【中文标题】Volley StringRequest 响应更改撇号的值(\'更改为â)【英文标题】:Volley StringRequest response change the value for apostrophe( ‘ is changed to â)Volley StringRequest 响应更改撇号的值('更改为â) 【发布时间】:2021-05-25 16:41:48 【问题描述】:api 调用发送了正确的响应,但是当我从 Volley StringRequest 获得响应时,撇号变为不可读的字符。
我用来调用 api 的代码是这样的:
private fun makeRequest(
method: Int,
params: Map<String, String>,
auth: Boolean,
token: String = "null",
logout: Boolean = false
)
// Creating a StringRequest
val req = object : StringRequest(method, url, res ->
// Creating JSON object from the response string
// and passing it to result: (JSONObject) -> Unit function
result(res.toString().trim())
, volleyError: VolleyError? ->
// Getting error message and passing it
// to val error: (String) -> Unit function
if (!logout)
if (!sessionExpire)
if (volleyError!!.networkResponse != null)
handleError(volleyError)
else
HelperService().displayToast(
context!!,
context!!.resources.getString(string.internetError)
)
error?.invoke()
)
// Overriding getParams() to pass our parameters
override fun getParams(): Map<String, String>
if (method == Constants.GET)
return super.getParams();
else
return params
override fun getHeaders(): MutableMap<String, String>
if (auth)
val headers = HashMap<String, String>()
headers["authorization"] = "Token " + token
return headers;
else
return super.getHeaders();
req.retryPolicy = DefaultRetryPolicy(
60000,
0,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT
);
// Adding request to the queue
volley.add(req)
附上回复图片。第一个是来自网络的响应,它正在正常显示。第二个来自android。名称中使用了两种撇号。我需要他们两个工作。请帮忙。
更新:更换工作,但请推荐一个更好的解决方案。所以,我不会有这类问题的回应。
val data = res.toString().trim().replace("â\u0080\u0098","'")
【问题讨论】:
There are two types of apostrophe used in the name
你知道第二个叫什么或者它为什么存在吗?您能否将带有两个不同撇号的 json 数据发布为代码,以便我们复制它
@a_local_nobody 一个是您从键盘或安卓设备键盘输入的撇号。另一个是从 ios 设备添加的。当我尝试复制粘贴 â 以替换为 '.它向我展示了这个 â\u0080\u0098。替换响应中的值是可行的,但如果有更好的方法,请告诉我。谢谢
【参考方案1】:
'
的转义序列是&apos
。
试试
response.replace("'", "'")
有效的代码
val data = res.toString().trim().replace("â\u0080\u0098","'")
【讨论】:
谢谢。替换响应中的值有效,但撇号具有值: â\u0080\u0098 并且我将其替换为 ' 效果很好。 很高兴为您提供帮助:) 上传您的 kotlin 代码,这将帮助您并标记为已接受,以便对其他人有所帮助 我通过删除任何 java 引用和方法签名使您的答案更加通用,人们应该仍然理解这个想法,如果您不同意,欢迎您回滚 @a_local_nobody 谢谢你,我当然同意。以上是关于Volley StringRequest 响应更改撇号的值('更改为â)的主要内容,如果未能解决你的问题,请参考以下文章
2.15 学习总结 之 volley(HTTP库)之StringRequest
用户登录流程详解 +volley(StringRequest)
Android-Volley网络通信框架(StringRequest & JsonObjectRequest)