Intereting Posts
Android 4.2 – поведение среды.getExternalStorageDirectory (). GetPath () Android: Как сбросить / очистить настройки приложения во время модульного тестирования? Создайте приложение системы gradle как часть сборки AOSP Каков наилучший способ загрузки файлов из сети программно в Android? Рисовать растровые изображения из ресурсов над другим Анимация Android Flipboard Запретить открытие диалогового окна несколько раз при возобновлении действия SimpleCursorAdapter vs CursorAdapter? Пусть пользователь, который использует мобильный браузер, отправляет код продукта, который они хотят по SMS Есть ли способ сделать изображения на кнопках с автоматическим изменением размера в соответствии с экраном? Высота просмотра в javascript max после изменения ориентации Android & iOS Android – Чтение XML-файла с помощью HTTP GET Как определить, имеет ли устройство Android Accelerometer? Журнал Crashlytics не отправлен Исключение исключительного исключения FileNotFoundException из приложения Android в дикой природе

Как вставить% 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 .

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

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