У меня есть стандартная форма на странице HTML с обычными типами ввода: text
, select
, submit
. Использование Python (фреймворк Pyramid ) для обработки этих форм было простым и без проблем.
В этой конкретной форме, однако, мне нужно было использовать textarea
для приема более длинного многострочного ввода. При обработке пользовательского ввода в Python я использовал следующий код:
* * 1010
Это работает для text
ввода, но не для textarea
ввода. textarea
ввод не обрабатывается, если включен символ Юникода, и выдает следующую ошибку:
(<type 'exceptions.UnicodeEncodeError'>, UnicodeEncodeError('ascii', u'some text then a unicode character \u2013 and some more text', 14, 15, 'ordinal not in range(128)'), <traceback object at 0x10265ca70>)
Есть ли причина для этого? Похоже, что предполагается, что вход textarea
обрабатывается как ASCII вместо UTF-8, но я не уверен, как это изменить.
Дополнительная информация: страница, с которой отправляется форма, является страницей HTML5 с кодировкой UTF-8.
РЕДАКТИРОВАТЬ: Владимир Палант предположил, что он уже был декодирован, и я проверяю это:
print isinstance(request.params['form_element'], str)
возврат False
print isinstance(request.params['form_element'], unicode)
возврат True