как вставить %20 вместо пробела в android
У меня есть XML-файл URL, в котором есть пробелы, которые я хочу заменить пробелами %20.. как это сделать????
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
/** Send URL to parse XML Tags */
URL sourceUrl = new URL(
"http://www.arteonline.mobi/iphone/output.php?gallery=MALBA%20-%20MUSEO%20DE%20ARTE%20LATINOAMERICANO%20DE%20BUENOS%20AIRES");
XMLHandlerartistspace myXMLHandler = new XMLHandlerartistspace();
xr.setContentHandler(myXMLHandler);
xr.parse(new InputSource(sourceUrl.openStream()));
7 ответов
попробуйте это:
String temp = http://www.arteonline.mobi/iphone/output.php?gallery=MALBA%20-%20MUSEO%20DE%20ARTE%20LATINOAMERICANO%20DE%20BUENOS%20AIRES
temp = temp.replaceAll(" ", "%20");
URL sourceUrl = new URL(temp);
когда вы создаете свой URL, вы должны использовать средств кодирования для кодирования параметров.
StringBuilder query = new StringBuilder();
query.append("gallery=");
query.append(URLEncoder.encode(value, "UTF-8"));
Если у вас уже есть весь URL-адрес в строке или java.сеть.URL, вы можете захватить часть запроса и перестроить при URLEncoding каждое значение параметра.
только одно дополнение к ответу sudocode:
используйте android.сеть.Ури.кодируйте вместо URLEncoder.кодируйте, чтобы избежать проблемы" пробелы преобразуются в+". Тогда ты избавишься от веревки.replaceAll () и его более элегантный:)
StringBuilder query = new StringBuilder();
query.append("gallery=");
query.append(android.net.Uri.encode(value, "UTF-8"));
Я думаю, вы хотите заменить все пробелы, а не только белый.
самый простой способ-это использовать
"url_with_spaces".replaceAll(" ", "%20);
однако вы должны учитывать и другие символы в url-адресе. См.Рекомендуемый метод для экранирования HTML в Java
попробуйте использовать URIUtil.encodePath
метод из api org.apache.commons.httpclient.util.URIUtil
.
Это следует сделать трюк для вас.
Я собираюсь добавить одно предложение здесь. Вы можете сделать это, чтобы избежать необходимости получения каких-либо внешних библиотек.