java — искаженный код UTF-8 при отправке JSON с Android на сервер WAMP

Я искал в Интернете способ отправить JSON на мой сервер, и я нашел этот действительно полезный ответ. Я использовал это, чтобы отправить JSON на свой сервер, и тогда планировалось декодировать его, однако по какой-то причине я не могу понять, что это правильно.

Я использую GSON для кодирования HashMap в строку JSON

Map<String, String> myData = new HashMap<String, String>();
myData.put("count", "1");
myData.put("id", "1000");
myData.put("name", "Äpple");
String json = new GsonBuilder().create().toJson(myData, Map.class);

Со строкой JSON я отправляю ее на свой сервер, используя HttpPost,

HttpPost httpPost = new HttpPost(uri);
httpPost.setEntity(new StringEntity(json));
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");

Отлично, теперь мне нужно только получить закодированный JSON на моем WAMP-сервере и использовать классно Встроенная функциональность JSON PHP для его декодирования.

$json = file_get_contents('php://input');
for ($i = 0; $i <= 31; ++$i) {
$json = str_replace(chr($i), "", $json);
}
$json = str_replace(chr(127), "", $json);

if (0 === strpos(bin2hex($json), 'efbbbf')) {
$json = substr($json, 3);
}
$json = stripslashes($json);

$data = json_decode($json, true);

Оказывается, встроенная поддержка JSON, возможно, не так уж и хороша. Может быть, это как-то связано с версией PHP, которую я использую (5.5.12)?

Вот данные JSON, которые я так отчаянно пытаюсь декодировать с помощью php:

{"count":"1","id":"1000","name":"Äpple"}

Если этого не достаточно, вот шестнадцатеричный дамп $json переменная (после удаления «скрытых символов» в моей строке):

7b22636f756e74223a2231222c226964223a2231303030222c226e616d65223a22c470706c65227d

В примерах приведены «Неправильные символы UTF-8, возможно, неправильно закодированные» из json_last_error(),

Будет ли кто-то так любезно объяснить, почему и как я отправляю правильно закодированные символы UTF-8?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]