我正在创建一个崇高的文本插件,以使用lua-fmt并在保存时自动格式化lua代码。几乎完成了,除了像'‰'这样的某些字符在格式化后返回诸如“�”之类的怪异结果。
我格式化代码的方法是使用旧代码创建一个文件并使用lua-fmt程序,方法是使用 // Keep listening to the InputStream while connected
while (true) {
try {
bytes = mmInStream.read(buffer); // it may not work because its not reading from the first line unlike this: bytes = mmInStream.read(buffer, 0, bytes);
// Send the obtained bytes to the UI Activity
mHandler.obtainMessage(MESSAGE_READ, bytes,-1, buffer).sendToTarget();
对其进行调用,如以下摘录所示:
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)
,但是产生了相同的结果。如果我在文件上运行luafmt程序,它将产生正确的结果,这就是为什么我认为subprocess.Popen()
编码存在问题。
我还尝试了不同的编码,但没有得到肯定的结果。
谢谢!
答案 0 :(得分:0)
正如@GiacomoCatenazzi所指出的,我没有明确地对我的辅助文件进行编码,这使lua-fmt不知道奇怪的字符,将open方法更改为wd
并将其编码为 UTF-8 效果很好!