Кодировка символа «‰» возвращает «ï¿½» в Python после subprocess.check_output - PullRequest
0 голосов
/ 28 января 2019

Я создаю плагин для возвышенного текста, чтобы использовать lua-fmt и автоматически форматировать код lua при сохранении.Это почти сделано, за исключением того, что некоторые символы, такие как «‰», возвращают странные результаты, такие как «ï¿½» после форматирования.

Что я сделал, чтобы отформатировать код, так это создать файл со старым кодом и использовать lua-Программа fmt, вызвав ее с subprocess.check_output, как в приведенном ниже отрывке:

file = open("formattingAux.lua","w")
file.write(self.view.substr(file_text))#text from saving file
file.close()

output = subprocess.check_output("luafmt formattingAux.lua", shell=True, universal_newlines=True)

Я также пытался использовать subprocess.Popen(), но это дало тот же результат.Если я запускаю программу luafmt для файла, он дает правильный результат, поэтому я думаю, что есть проблема с кодировкой subprocess.check_output.

Я также пробовал разные кодировки без положительного результата.

Спасибо!

1 Ответ

0 голосов
/ 29 января 2019

Как указал @GiacomoCatenazzi, я не вводил явно свой вспомогательный файл в явном виде, что заставило lua-fmt не знать странный символ, изменив метод open на wd и закодировав его как UTF-8 отлично сработало!

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