Я пытаюсь отправить имя пользователя с полем ввода libgdx. Он отлично работает с обычными символами, я могу отправить его в php и сохранить его в базе данных. Но когда я пробую специальные турецкие символы, такие как «ö, ş, ğ, ç, ü» и т. Д., Они не отправляют эти символы и символы после них. Кроме того, в текстовом поле можно увидеть специальные символы, но не отправлять их в файл php.
Я видел пост об этой проблеме, Вот, и я обновил версию libgdx до последней стабильной. Но у меня все та же проблема.
Код, который я использую ниже:
HttpRequest request = new HttpRequest(HttpMethods.POST);
request.setUrl("http://xxxxx.com/create_usr.php");
request.setContent("name=" + name);
Должен ли я добавить что-то еще к этому http-коду для отправки этих символов?
Кроме того, я видел дополнительный код в сети, я не знаю, что они делают, но я добавил их до seturl, но не работал:
request.setHeader("Accept-Charset", "utf-8");
request.setHeader("Content-Type", "application/x-www-form-urlencoded");
РЕШИТЬ:
Я изменил часть httprequest с кодом ниже, и это сработало. Я также изменил метод записи, чтобы получить:
HashMap<String, String> parameters = new HashMap<String, String>();
parameters.put("name", name);
HttpRequest request = new HttpRequest(HttpMethods.GET);
request.setUrl("http://xxxxx.com/create_usr.php"");
request.setContent(HttpParametersUtils.convertHttpParameters(parameters));
Попробуйте позвонить по URL-адресу из веб-браузера, чтобы убедиться, что проблема в приложении libgdx или в php. Может случиться, что ваша база данных (поле) находится в UTF8, но ваше соединение mySql не так, что стоит проверить.
Кроме того, я не уверен, но, возможно, вы должны кодировать значение параметра и декодировать его на стороне php.
Других решений пока нет …