Как я кодирую значения параметров URI?

BeautifulSoup имеет простую в использовании функцию prettify().

Отступы на один уровень отступов. Он работает намного лучше, чем lxml's pretty_print, и является коротким и сладким.

from bs4 import BeautifulSoup

bs = BeautifulSoup(open(xml_file), 'xml')
print bs.prettify()
56
задан 6 revs 14 January 2009 в 20:19
поделиться

5 ответов

Джерси UriBuilder кодирует компоненты URI с помощью application/x-www-form-urlencoded и RFC 3986 по мере необходимости. По словам Разработчика методы Javadoc

выполняют контекстное кодирование символов, не разрешенных в соответствующем компоненте URI после правил application/x-www-form-urlencoded типа среды для параметров запроса и RFC 3986 для всех других компонентов. Обратите внимание, что только символы, не разрешенные в конкретном компоненте, подвергаются кодированию так, например, путь, предоставленный одному из методов пути, может содержать параметры матрицы или сегменты разнообразного пути, так как разделители являются допустимыми символами и не будут закодированы. Процент закодировал значения, также распознаны, где позволено и не будет двойной закодированный.

30
ответ дан 3 revs, 2 users 67% 7 November 2019 в 16:51
поделиться

Mmhh я знаю, что Вы уже отбросили URLEncoder, но несмотря на то, что говорят документы, я решил дать ему попытку.

Вы сказали:

, Например, учитывая вход:

http://google.com/resource?key=value

я ожидаю вывод:

http%3a%2f%2fgoogle.com%2fresource%3fkey%3dvalue

Так:

C:\oreyes\samples\java\URL>type URLEncodeSample.java
import java.net.*;

public class URLEncodeSample {
    public static void main( String [] args ) throws Throwable {
        System.out.println( URLEncoder.encode( args[0], "UTF-8" ));
    }
}

C:\oreyes\samples\java\URL>javac URLEncodeSample.java

C:\oreyes\samples\java\URL>java URLEncodeSample "http://google.com/resource?key=value"
http%3A%2F%2Fgoogle.com%2Fresource%3Fkey%3Dvalue

Как ожидалось.

, Какова была бы проблема с этим?

-3
ответ дан OscarRyz 7 November 2019 в 16:51
поделиться

Я думаю, что класс URI является тем, который Вы ищете.

-2
ответ дан Glenn 7 November 2019 в 16:51
поделиться

Кажется, что CharEscapers от Google GData-java-client имеет то, что Вы хотите. Это имеет uriPathEscaper метод, uriQueryStringEscaper, и универсальный uriEscaper. (Весь объект Беглеца возврата, который делает фактический выход). Лицензия Apache.

2
ответ дан Peter Štibraný 7 November 2019 в 16:51
поделиться

У меня не хватает репутации, чтобы комментировать ответы, но я просто хотел отметить, что скачивание JSR-311 api само по себе не сработает. Вам необходимо скачать реализацию ссылки (jersey).

Только скачивание api со страницы JSR даст Вам ClassNotFoundException, когда api попытается найти реализацию во время выполнения.

9
ответ дан 26 November 2019 в 17:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: