Что самый легкий путь состоит в том, чтобы выйти из HTML в Python?

Одна небольшая настройка, которую я должен был сделать на других ответах, состоит в том, чтобы только показать панель в viewWillDisappear, только если она исчезает из-за нажатия на нее элемента навигации. Это потому, что вид может исчезнуть по другим причинам.

Таким образом, я могу только показать панель, если этот вид больше не является самым верхним видом:

- (void) viewWillDisappear:(BOOL)animated
{
    if (self.navigationController.topViewController != self)
    {
        [self.navigationController setNavigationBarHidden:NO animated:animated];
    }

    [super viewWillDisappear:animated];
}
131
задан Josh Gibson 30 June 2009 в 04:15
поделиться

2 ответа

cgi.escape в порядке. Он экранируется:

  • < в & lt;
  • > в & gt;
  • & в & amp;

Этого достаточно для всех HTML.

РЕДАКТИРОВАТЬ: Если у вас есть символы, отличные от ascii, которые вы также хотите избежать, для включения в другой закодированный документ, который использует другую кодировку, например , говорит Крейг , просто используйте:

data.encode('ascii', 'xmlcharrefreplace')

Don ' Не забудьте сначала декодировать данные в unicode , используя любую кодировку, в которой они были закодированы.

Однако, по моему опыту, такое кодирование бесполезно, если вы просто работаете с unicode все время с самого начала. Просто закодируйте в конце кодировку, указанную в заголовке документа ( utf-8 для максимальной совместимости).

Пример:

>>> cgi.escape(u'<a>bá</a>').encode('ascii', 'xmlcharrefreplace')
'&lt;a&gt;b&#225;&lt;/a&gt;

Также стоит отметить (спасибо Грегу) дополнительный параметр quote cgi.escape . Если для него установлено значение True , cgi.escape также экранирует символы двойных кавычек ( "), поэтому вы можете использовать полученное значение в атрибуте XML / HTML.

РЕДАКТИРОВАТЬ: Обратите внимание, что cgi.escape устарел в Python 3.2 в пользу html.escape , который делает то же самое, за исключением того, что цитата по умолчанию имеет значение True.

175
ответ дан 24 November 2019 в 00:15
поделиться

cgi.escape должен быть подходящим для экранирования HTML в ограниченном смысле экранирования тегов HTML и символьных сущностей.

Но вам, возможно, придется также рассмотреть проблемы кодирования: если HTML, который вы хотите процитировать, содержит символы, отличные от ASCII, в определенной кодировке, тогда вам также придется позаботиться о том, чтобы вы представляли их разумно при цитировании. Возможно, вы могли бы преобразовать их в сущности. В противном случае вам следует убедиться, что между «исходным» HTML и страницей, в которую он встроен, выполняется правильный перевод кодировки, чтобы избежать искажения символов, отличных от ASCII.

8
ответ дан 24 November 2019 в 00:15
поделиться
Другие вопросы по тегам:

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