Android: отправка строки из EditText с JSON в PHP - проблемы с кодированием - PullRequest
0 голосов
/ 29 апреля 2018

У меня проблемы с кодировкой текста из Android EditText при отправке его со скриптом JSON в PHP.

Сначала в Android я получаю текст от элемента EditText.

String s = editText.getText().toString();

затем выкладываю его через HttpURLConnection на PHP скрипт

HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
conn.setRequestProperty("Accept", "application/json");
conn.setDoOutput(true);
conn.setDoInput(true);

JSONObject jsonParam = new JSONObject().put("mystring", s);

DataOutputStream os = new DataOutputStream(conn.getOutputStream());
os.writeBytes(jsonParam.toString());
os.flush();
os.close();

затем я анализирую JSON в PHP-скрипте:

$data = json_decode(utf8_decode(file_get_contents('php://input')), true);

Все работает нормально, но когда я пытаюсь отправить какой-то текст с диакритическими знаками, кажется, что ничего не отправлено и var_dump ($ data) имеет значение null. Что-то не так с форматированием или в чем может быть проблема?

Спасибо за помощь.

EDIT

Elsunhoty ответ работает, но я должен использовать urldecode () в PHP

1 Ответ

0 голосов
/ 29 апреля 2018

Вы можете попробовать сначала обрезать текст

   String s = editText.getText().toString();
         s  = s.trim();

, а затем кодировать текст

  String encodeText= "";
                try {
                     encodeText= URLEncoder.encode(s,"utf-8");
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...