Поэтому я пытаюсь отладить некоторый код Python 2.7 в Visual Studio Community 2019 версии 16.4.6.
В начале кода есть строка # -*- coding: utf-8 -*-
просто указать кодировку файла.
В коде программа считывает некоторые данные из файла 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 байт из файла)? (скриншот)