带重音的 Volley 参数,作为特殊字符 (�) 发送
Volley parameter with accent, sent as special character (�)
我想向我的服务器发出 volley post 请求,但是当发送带有重音的参数时,重音变成了 �。如果我通过我的 Web 应用程序或通过 postman 发出请求,则服务器会接受重音。问题是当参数通过 volley.
下面是我的函数示例,可以发出截击 post 请求。
fun post(path: String, params: JSONObject, headers: HashMap<String, String>, completionHandler: (response: JSONObject?) -> Unit) {
val jsonObjReq = object : JsonObjectRequest(Method.POST, basePath + path, params,
Response.Listener<JSONObject> { response ->
Log.d(TAG, "/post request OK! Response: $response")
val key = "code"
val value = 200
response.put(key, value)
completionHandler(response)
},
Response.ErrorListener { error ->
Log.d(TAG, "/post request fail! Error:" + error.message)
completionHandler(null)
}) {
@Throws(AuthFailureError::class)
override fun getHeaders(): Map<String, String> {
headers.put("Content-Type", "application/json ; charset=utf-8")
return headers
}
}
在查看 Request.java 的源代码时,它突出显示:
/**
* Default encoding for POST or PUT parameters.
* See {@link #getParamsEncoding()}.
**/
private static final String DEFAULT_PARAMS_ENCODING = "UTF-8";
确保源代码文件(通常在 Android Studio 的右下角有一个小指示器)和发布的内容确实有 UTF-8
编码(这在网络中是一个很常见的问题发展,这可能也适用于此)。如果内容没有 UTF-8
编码,则需要在发布前进行转换,以免以 �
替换字符结尾。请参阅此 以了解 String
转换。
还要检查一次脚本的编码,数据库连接和服务器端的数据库;如果其中任何一个不支持 UTF-8
,它将无法工作。这不一定是客户端问题(应该支持 UTF-8
开箱即用)。
我想向我的服务器发出 volley post 请求,但是当发送带有重音的参数时,重音变成了 �。如果我通过我的 Web 应用程序或通过 postman 发出请求,则服务器会接受重音。问题是当参数通过 volley.
下面是我的函数示例,可以发出截击 post 请求。
fun post(path: String, params: JSONObject, headers: HashMap<String, String>, completionHandler: (response: JSONObject?) -> Unit) {
val jsonObjReq = object : JsonObjectRequest(Method.POST, basePath + path, params,
Response.Listener<JSONObject> { response ->
Log.d(TAG, "/post request OK! Response: $response")
val key = "code"
val value = 200
response.put(key, value)
completionHandler(response)
},
Response.ErrorListener { error ->
Log.d(TAG, "/post request fail! Error:" + error.message)
completionHandler(null)
}) {
@Throws(AuthFailureError::class)
override fun getHeaders(): Map<String, String> {
headers.put("Content-Type", "application/json ; charset=utf-8")
return headers
}
}
在查看 Request.java 的源代码时,它突出显示:
/**
* Default encoding for POST or PUT parameters.
* See {@link #getParamsEncoding()}.
**/
private static final String DEFAULT_PARAMS_ENCODING = "UTF-8";
确保源代码文件(通常在 Android Studio 的右下角有一个小指示器)和发布的内容确实有 UTF-8
编码(这在网络中是一个很常见的问题发展,这可能也适用于此)。如果内容没有 UTF-8
编码,则需要在发布前进行转换,以免以 �
替换字符结尾。请参阅此 String
转换。
还要检查一次脚本的编码,数据库连接和服务器端的数据库;如果其中任何一个不支持 UTF-8
,它将无法工作。这不一定是客户端问题(应该支持 UTF-8
开箱即用)。