Во-первых, new String(smsContent.getBytes("UTF-8"), "UTF-8")
- это резервная передача туда и обратно, эквивалентная smsContent
. Сначала вы кодируете строку как байты через UTF-8, а затем сразу же снова декодируете ее из байтов.
Во-вторых, ваш метод разгадывания XML полностью нарушен. Вы не можете просто объединять строки и надеяться получить в результате правильно сформированный XML. Просто, например, подумайте о том, что произойдет, если кто-то попытается отправить "
? Используйте библиотеку XML.
В-третьих, вы неявно используете кодировку по умолчанию для платформы OutputStreamWriter
вместо ее явного указания, что означает, что ваш код работает только на тех машинах, которые случайно имеют правильную кодировку по умолчанию. Я предполагаю, что ваш нет.
В-четвертых, ваш метод определения загадочных параметров POST не работает. Вы не указали, что такое переменная message
. Я предполагаю, что это полный XML-документ, но затем вы пытаетесь отправить его в качестве параметра POST в какую-то службу HTTP, и в этом случае его необходимо экранировать / закодировать в URL. Например, что произойдет, если кто-то попытается отправить сообщение &data=<whatever>&
? Пожалуйста, уточните.
См. Также Использование java.net.URLConnection для запуска и обработки HTTP-запросов
В-пятых, поскольку вы отправляете в какой-либо HTTP-сервис, вероятно, есть некоторая документация для этого сервиса, какую кодировку отправлять или как ее указать, возможно, с заголовком HTTP (возможно, «Content-type: application/x-www-form-urlencoded; charset=UTF-8
»?). Укажите нам документацию, если вы сами не можете ее выяснить.
Редактировать: Нашел документацию: http://www.google.se/search?q=valuefirst+pace
В нем довольно четко сказано, что вам необходимо url-кодирование XML-документа, так что это, вероятно, то, чего вам не хватает, и в этом случае кодировка OutputStreamWriter
не будет иметь значения, если она совместима с ASCII.
Однако в документации не указано, какую кодировку символов использовать для url-кодирования, что довольно слабо. UTF-8 является наиболее вероятным, хотя.