плохая кодировка для xml - PullRequest
1 голос
/ 19 апреля 2011

У меня есть такая строка " <person name="peter" ><\person>"

URL-кодировка

URLEncoder.encode(person.toString(),"UTF-8");

но кодировка плохая, потому что для пробелов делают + вместо %20, а для = он дает другие значения, можете ли вы, ребята, помочь мне?

Ответы [ 2 ]

6 голосов
/ 19 апреля 2011

Это точно так, как указано в URLEncoder javaDoc.Пробел конвертируется в +, а = является «небезопасным» и, следовательно, кодируется в %3D.

Если вам нужно %20 вместо +, просто выполните некоторую постобработку:1011 *

URLEncoder.encode(person.toString(),"UTF-8").replace("+", "%20");
0 голосов
/ 19 апреля 2011

Учитывая ваш комментарий, я предполагаю, что вы хотите декодировать ответ веб-службы.

// the answer you receive from the webservice
string webserviceResponse = "%3Cperson+name%3D%22peter%22%3E%3C%2Fperson%3E";

// turn into a "good" Xml string
string person = URLDecoder.decode(webserviceResponse, "UTF-8");

даст вам

<person name="peter"></person>

в качестве значения person.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...