1

我有一个显示此行为的 Win32 控制台应用程序。

1)使用VC 2005 cl编译和链接,应用程序工作正常。我所说的工作正常的意思是根据代码页 437 正确显示 128 以上的字符。

2)当我使用 QT qmake 构建项目(QT += 控制台)和 SOURCES = main.c 时,构建顺利,我的 main.exe 被创建。但是 128 以上的字符,使用 WriteConsoleOutput 函数显示不同(一些奇怪的字符)。我觉得这与代码页设置不正确有关。我没有调用任何 QT 函数,也没有创建 QApplication 或 QCoreApplication 对象。当我创建 QApplication 对象或 QCoreApplication 对象时,结果相同(未显示正确的字符)。

有没有办法使用 Win32 控制台和 QT 正确显示 128 以上的字符?

4

2 回答 2

0

WriteConsoleA我通过使用函数解决了这个问题。

于 2009-06-02T19:20:39.307 回答
0

WriteConsoleOuput如果那是 Windows 特定的 API,我当然不建议使用。Qt 提供了一种写出字符串的简单方法QTextStream

// setup
QFile f;
f.open(stdout, QIODevice::WriteOnly);
QTextStream qout(&f);

// usage
qout << tr("translate this text"); 

如果可能,我建议您对所有内容都使用 UTF-8。那么您不必担心不同的编码等。如果由于某种原因需要以本地编码输出,请考虑QString::fromLocal8bit().

于 2009-06-02T16:31:21.693 回答