Python NLS http кодировка - PullRequest
       33

Python NLS http кодировка

0 голосов
/ 14 мая 2019

Я пытаюсь провести интеграционное тестирование на наших веб-страницах с использованием поддержки национальных языков (NLS). Например, я пытаюсь опубликовать страницу с формой, содержащей значение «Fréd» для first_name.

Для этого я настроил Python 3.7.3 с

import request

А затем выполняйте запросы .post с данными {'first_name': "Fr \ u00E9d"}

В какой-то момент строка UTF-8 преобразуется в байты, но они не преобразуются в код акцента. Я копался в коде, и он сводится к следующему тесту:

>>> "Fr\u00E9d"
'Fréd'
>>> "Fr\u00E9d".encode("utf-8")
b'Fr\xc3\xa9d'

Список w3schools \ xc3 как ПИСЬМО ЛАТИНСКОГО КАПИТАЛА С TILDE и \ xa9 как ЗНАК АВТОРСКИХ ПРАВ.

Предполагая, что это не проблема с кодировкой Python, как я должен кодировать эти символы NLS в Python.

Заранее спасибо.

1 Ответ

0 голосов
/ 21 мая 2019

Я думаю, что начинаю понимать.

Поэтому, когда я отправляю сообщение со значением «Fréd», мой браузер кодирует это как (согласно отладчику firefox) Fr% E9d. Затем веб-сервер распознает это как Fréd.

«Fr \ u00E9d» переводится в b'Fr \ xc3 \ xa9d 'с помощью .encode («utf-8») в запросах / models.py. Проблема в том, что наша форма выглядит как accept-charset = "ISO-8859-1".

Я предполагаю, что пакет запросов Python не должен слепо выполнять преобразование. Но это выходит за рамки этого вопроса.

Спасибо за разъяснение.

...