Intereting Posts
Андроидный залп JsonObjectRequest, который не возвращает ни одного тела всего 200 Панель инструментов Android Добавление элементов меню для разных фрагментов Как использовать задачуCheckCheck для запуска тестов на удаленных устройствах Android Bitmap.createBitmap () возвращает растровое изображение с -1 для высоты и ширины Подтвердите настройки. Android Android.database.sqlite.SQLiteDatabase.rawQuery () не обновляет столбец DATETIME с помощью функции SQLite datetime () Android: CollapsingToolbarLayout расширяет текст, но не сворачивает текст Android – Где хранится база данных SQLite Использование ContentProviderClient vs ContentResolver для доступа к поставщику контента Как получить версию внутренней библиотеки ссылок из apk Nullpointerexception на dispatchDraw с ViewPager во вложенном фрагменте с помощью PageTransformer Android – доступ к онлайн-базе данных SQlite CursorAdapter vs ArrayAdapter для ListView Не удалось зажать масштаб эмулятора Как заставить Android Studio 0.6.0 использовать SDK Build Tools 19.1.0

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

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

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