pyside2-uic 输出中的空字节

pyside2-uic null bytes in output

我正在尝试转换使用 Qt Designer 和 pyside2-uic 创建的 Qt .ui 文件,但输出以 2 个垃圾字节开头,然后每隔一个字节为空。

这是输出的开始:

FF FE 23 00 20 00 2D 00 2A 00 2D 00 20 00 63 00 6F 00 64 00 69 00 6E 00 67 00 3A 00 20 00 75 00 74 00 66 00 2D 00 38 00 20 00 2D 00 2A 00 2D 00 0D 00 0A 00 0D 00 0A 00 23 00 20 00 46 00 6F 00

如果我删除前 2 个字节和所有空值,它将按预期工作。

我正在使用 Python 3.7 和最新版本的 pyside2,有什么方法可以让 pyside2-uic 输出有效文件而无需 运行 它通过另一个脚本来清除所有垃圾?

此错误(?) 仅当 pyside2-uic 在 powershell 中为 运行 并且输出被重定向到文件时才会发生。

如果使用 powershell,请使用 -o 选项指定输出文件。这两种方法都可以在普通命令提示符下正常工作。

pyside2-uic mainwindow.ui -o MainWindow.py

使用-o代替>

仅供参考,问题似乎是 UTF-8 编码(使用 -o 时)与 UTF-16 LE(PowerShell 中的输出重定向)。

这也与上面匹配...每个字节都有一个 00(16 位与 8 位)。