это не может быть приемлемым вариантом для вас, но позвольте мне сказать, что большое количество ошибок, связанных с кодировкой, исчезает при использовании Python 3, просто потому, что разделение между строками Unicode и байтовыми объектами стало намного понятнее.Когда мне нужно использовать Python 2, я выбираю версию 2.6, где вы можете объявить from future import unicode_literals
.На самом деле неверующие должны читать ссылку, которую вы разместили , поскольку она указывает на некоторые тонкости поведения en / decoding в Python, которые, к счастью, исчезли в Python 3.
вы говорите
Я не контролирую языки или язык по выбору.Мой сайт поддерживает международные языки, а также английский.У меня есть агрегация каналов, которая обычно не беспокоит Unicode / ASCII / UTF-8
, что бы вы ни выбрали, ясно, что вы не хотите, чтобы ваше веб-приложение зависало только потому, что некоторые другие пользователичьи каналы вы потребляете, решили закодировать их сообщения в неясной скандинавской схеме кодирования.основная проблема актуальна для всех веб-приложений, поскольку URL-адреса не несут информацию о кодировке, а также потому, что вы никогда не знаете, какие последовательности байтов злоумышленник может захотеть вам отправить.в этом случае я делаю то, что я называю «безопасное декодирование цепи»: сначала я пытаюсь декодировать как utf-8, и если это не получится, попробуйте снова, используя cp1252.если это не удается, я отклоняю запрос (HTTP 404) или что-то подобное.
Вы упоминаете, что обрабатываете каналы, а вы?¿Каналы?не беспокойтесь о юникоде и кодировках.не могли бы вы уточнить это утверждение?это полностью уклоняет меня от того, как можно успешно создать сайт, который содержит текст на нескольких языках и не заботится о кодировках.ясно, что использование ascii-only не приведет вас слишком далеко.