Я настроил apache httpClient следующим образом:
HttpProtocolParams.setContentCharset(httpParameters, "UTF-8");
HttpProtocolParams.setHttpElementCharset(httpParameters, "UTF-8");
Я также включаю заголовок http "Content-Type: application / json; charset = UTF-8" для всех запросов http post и put.
Я пытаюсь отправить запросы http post / put с телом json, содержащим специальные символы (т. Е. Китайские символы с помощью клавиатуры Google Pinyin, символы и т. Д.).думаю, это потому, что DDMS не поддерживает UTF-8, как описано в этой проблеме.
Проблема в том, что когда сервер получает запрос, он иногда вообще не видит символы(особенно китайские иероглифы), или это становится бессмысленным мусором, когда мы получаем его через запрос GET.
Я также попытался поместить 250 не-ascii символов в одно поле, потому что это конкретное поле должно быть в состоянии занятьдо 250 символов.Тем не менее, он не может проверить на стороне сервера, который утверждает, что ограничение в 250 символов было превышено.250 символов ASCII работают просто отлично.
Парни из сервера утверждают, что поддерживают UTF-8.Они даже пытались смоделировать почтовый запрос, содержащий китайские символы, и данные были получены сервером просто отлично.Однако этот парень (китаец) использует компьютер под управлением Windows с установленным языковым пакетом для китайского языка (я думаю, потому что он может печатать китайские иероглифы на клавиатуре).
Я предполагаю, что используются кодировкипо клиенту Android и серверу (сделанному китайскими парнями кстати) не выровнены.Но я не знаю, кто виноват, так как серверные парни утверждают, что они поддерживают UTF-8, а наш остальной клиент настроен на поддержку UTF-8.
Это заставило меня задуматься о том, какую кодировку Android использует дляпо умолчанию для всего ввода текста, и если он может быть изменен на другой программно.Я пытался найти ресурсы о том, как сделать это для входных виджетов, но я не нашел ничего полезного.
Есть ли способ установить кодировку для всех входных виджетов в Android?Или, может быть, я что-то упустил в конфигурации остальных клиентов?Или, может быть, просто может быть, серверные парни не используют UTF-8 на своих серверах, а вместо этого использовали Windows charsets?