Какая правильная кодировка для переменной типа Python 2.7 str для правильного отображения ее значения в Visual Studio 2019 Text Visualizer во время отладки? - PullRequest
0 голосов
/ 17 марта 2020

Поэтому я пытаюсь отладить некоторый код Python 2.7 в Visual Studio Community 2019 версии 16.4.6.

  1. В начале кода есть строка # -*- coding: utf-8 -*- просто указать кодировку файла.

  2. В коде программа считывает некоторые данные из файла CSV:

for rec in csv.reader(open(os.path.join(os.curdir, 'file.csv'), 'rb'), delimiter=';'):
  if rec[0]:
    ...

В строке if rec[0]: я вставил точку останова.

Начал отладку и выполнение кода остановилось на точке останова (как и должно быть), затем я открыл окно просмотра, чтобы увидеть ранее добавленная туда переменная rec[0].

rec[0] содержит значение байтов строки в кодировке utf-8 из файла csv: '\xd1\x82\xd0\xb5\xd1\x81\xd1\x82', которая записывается в файле как русский 'тест;' («тест» на английском языке sh, ';' - разделитель), см. скриншот:

Когда в окне Watch рядом со значением переменной я нажимаю лупу, чтобы увидеть значение в Text Visualizer, все, что я вижу, это gibberi sh:

Ну, я пытался выяснить кодировку этого ÑеÑÑ, в соответствии с Универсальным декодером кириллицы c это WINDOWS-1251 (кодировка источника) и переводит обратно на русский язык 'тест'.

И здесь мне интересно, как заставить Visual Studio 2019 Text Visualizer отображать значение правильно?

Я пытался использовать Наблюдайте за выражением, чтобы изменить кодировку с utf-8 на cp1251, но безрезультатно, все, что я увидел после этого, было еще одно гиббери sh:

Также, возможно, это не правильный вопрос (поскольку программа читает байты utf-8, Visual Studio отображает байты utf-8), но есть ли способ отобразить удобочитаемые строки из файла csv вместо байтов в DataTip (отладка) значение переменной (в то время как программа все еще читает utf-8 байт из файла)? (скриншот)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...