Intereting Posts
Отсутствует изображение уровня 15 api в студии android Создайте приложение системы gradle как часть сборки AOSP Как переместить стрелку Android Spinner вниз поближе к ее текстуре Широковещательное зарядное устройство отключено в Android O Почему я получаю ошибку «sqlite3: not found» на внедренном Nexus One при попытке открыть базу данных с помощью оболочки adb? Как изменить имя пакета приложения для приложения Android через командную строку Android удаление файла из внутреннего хранилища Тестирование in-app-billing Android.mk vs Application.mk Android: Как установить абсолютный размер окна Activity? Android: обнаружение, если пользователь коснется и перетащит из области кнопки? Android usb host api и USB-накопитель Как получить текущий уровень масштабирования GoogleMap? Как настроить Android SnackBar на определенную позицию на экране OnScroll вызывается, когда я устанавливаю listView.onScrollListener (это), но без какого-либо касания

Как вставить% 20 ​​вместо места в android

У меня есть URL-адрес xml, в котором есть пробелы, я хочу заменить пробелы% 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())); 

Solutions Collecting From Web of "Как вставить% 20 ​​вместо места в android"

Попробуй это:

 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-адрес, вы должны использовать URLEncoder для кодирования параметров.

 StringBuilder query = new StringBuilder(); query.append("gallery="); query.append(URLEncoder.encode(value, "UTF-8")); 

Если у вас уже есть весь URL-адрес в String или java.net.URL, вы можете захватить часть запроса и перестроить, в то время как URLEncoding – значение каждого параметра.

Всего лишь одно дополнение к ответу sudocode:

Используйте android.net.Uri.encode вместо URLEncoder.encode, чтобы избежать проблемы с «преобразованием пробелов в +». Затем вы избавляетесь от String.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

 String s = "my string"; s=s.replaceAll(" ", "%20"); 

Попробуйте использовать метод URIUtil.encodePath из api org.apache.commons.httpclient.util.URIUtil .

Это должно сделать трюк для вас.

Я собираюсь добавить одно предложение здесь . Вы можете сделать это, чтобы избежать необходимости получать какие-либо внешние библиотеки.