Замените новые строки в строке Unicode

Я пытаюсь заменить символы новой строки в unicode, представляют в виде строки и, кажется, пропускают некоторые волшебные коды.

Мой конкретный пример - то, что я работаю над AppEngine и пытаюсь поместить заголовки от страниц HTML в a db.StringProperty() в моей модели.

Таким образом, я делаю что-то как:

link.title = unicode(page_title,"utf-8").replace('\n','').replace('\r','')

и я добираюсь:

Property title is not multi-line

Есть ли другие коды, которые я должен использовать для замены?

14
задан Hank Gay 4 February 2010 в 17:30
поделиться

3 ответа

Try ''.join(unicode(page_title, 'utf-8').splitlines()). splitlines() должна позволить стандартной библиотеке позаботиться обо всех возможных сумасшедших разрывах строк в Unicode, а затем вы просто присоединяете их все обратно вместе с пустой строкой, чтобы получить однострочную версию.

21
ответ дан 1 December 2019 в 08:52
поделиться

Python использует эти символы для разделения в Unicode. splitlines():

  • U+000A LINE FEED (\n)
  • U+000D CARRIAGE RETURN (\r)
  • U+001C FILE SEPARATOR
  • U+001D GROUP SEPARATOR
  • U+001E RECORD SEPARATOR
  • U+0085 NEXT LINE
  • U+2028 LINE SEPARATOR
  • U+2029 PARAGRAPH SEPARATOR

Как пишет Хэнк, использование splitlines() позволит Python позаботиться обо всех деталях для вас, но если вам нужно сделать это вручную, то это должен быть полный список.

10
ответ дан 1 December 2019 в 08:52
поделиться

было бы полезно напечатать repr () из page_title, который, как замечается, является мультилинией, но очевидный кандидат был бы '\r' .

0
ответ дан 1 December 2019 в 08:52
поделиться
Другие вопросы по тегам:

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