Volley StringRequest 响应更改撇号的值('更改为â)
Volley StringRequest response change the value for apostrophe( ‘ is changed to â)
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","'")
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","'")