Параметр залпа с ударением, отправленный как специальный символ ( ) - PullRequest
0 голосов
/ 17 января 2019

Я хочу сделать запрос на запись залпа на мой сервер, но при отправке параметра с акцентом акцент превращается в . Если я делаю запрос через мое веб-приложение или через почтальона, акцент принимается на сервере. Проблема в том, что параметр проходит через залп.

Вот пример моей функции для отправки запроса на залп.

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
        }
    }

1 Ответ

0 голосов
/ 19 января 2019

, глядя на исходный код 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 из коробки).

...