android - Volley StringRequest 响应更改撇号的值('更改为â)
问题描述
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","'")
解决方案
的转义序列'
是&apos
。
尝试
response.replace("'", "'")
有效的代码
val data = res.toString().trim().replace("â\u0080\u0098","'")
推荐阅读
- c# - 使用 IJSRuntime 在 blazor 中包装引导模式
- python - 我们可以通过部署在谷歌云平台上使用 python 调度程序运行我们的 python 程序吗?
- asp.net - asp.net实体框架gridview更新
- websocket - MQTT 用于聊天应用程序中的客户端通信
- python - 如何在不停止代码的情况下继续在 python 中请求有效输入
- android - 在指纹 API 中向后兼容使用 - Android Studio
- c# - USRP B200 C# API
- javascript - express和sequelize中同一路由上的多个get方法冲突
- ios - AppTrackingTransparency - 权限已添加但仍面临错误
- flutter - 我无法选中/取消选中复选框(颤振)