Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt应用程序没有';t打印ěčř;_C++_Qt_Encoding - Fatal编程技术网

C++ Qt应用程序没有';t打印ěčř;

C++ Qt应用程序没有';t打印ěčř;,c++,qt,encoding,C++,Qt,Encoding,此应用程序不打印前三个字母 #include <QApplication> #include <QLabel> #include <QString> int main(int argc, char** argv) { QApplication app(argc, argv); QString a = QString::fromUtf8("ěčř1šžýáíé"); QLabel win(a); win.show();

此应用程序不打印前三个字母

#include <QApplication>
#include <QLabel>
#include <QString>

int main(int argc, char** argv)
{
    QApplication app(argc, argv);
        QString a = QString::fromUtf8("ěčř1šžýáíé");
    QLabel win(a);
    win.show();

    return app.exec();
}
#包括
#包括
#包括
int main(int argc,字符**argv)
{
QApplication应用程序(argc、argv);
QString a=QString::fromUtf8(“ěř1šýýáé”);
QLabel win(a);
win.show();
返回app.exec();
}

这就是为什么我更喜欢避免在代码中使用c字符串,因为c字符串依赖于特许权编码。
首先,试着这样做:

QString a = QString::fromWCharArray(L"ěčř1šžýáíé");

这不起作用的唯一解释是编译器使用的编码与编辑器不同。假设您应用了其他建议,那么您的编辑器编码是UTF-8,而编译器还有其他内容

根据需要,您应该尝试将系统范围的编码更改为utf-8或检查编译器设置

您可以尝试加载项pro文件:

QMAKE_CXXFLAGS += -finput-charset=utf-8 -fexec-charset=utf-8

您可以执行以下操作:

// Utf-8 (hex) for each characters in "ěčř1šžýáíé"
const char s[] = { 0xC4, 0x9B, 0xC4, 0x8D, 0xC5, 0x99, 0x31, 0xC5, 0xA1,
                   0xC3, 0xBD, 0xC3, 0xA1, 0xC3, 0xAD, 0xC3, 0xA9, 0x00 };
QString a = QString::fromUtf8(s);
QLabel win(a);
win.show();

将源文件存储为UTF8编码(无BOM)。您的编程编辑器应该允许这样做。

另外,您的源代码是否真的是用UTF8编码的?Sry,不要说一些重要的东西,比如我使用Ubuntu 13.10或者我有基于Qt 5.0.2(64位)的Qt Creator 2.7.1。我看到你在Windows上编译它,所以这是一些Linux问题。是的,我在编辑->选择编码中控制它。作为原始文章,我也得到了示例问题。我使用Qt creator 3.0.1和Qt 4.8.5(MSVC2010 32位)以及Windows 7作为运行时环境。源代码必须使用UTF8,编译器必须知道这一点。所有的问题都必须解决。@Daffy,它不起作用,你看到了什么?请复制并粘贴标签内容。@Daffy,嗯,看起来你只看到了文本的一半。也许你的标签太小了?或者与其他内容重叠?你是否阅读了对我问题的评论?因为Tay2510有相同的问题,并且有不同版本的Qt creator,所以Qt和Qt都有windows。但是死神术士没有问题。补充:我已经在另一台机器上编译并运行了代码,效果很好。总之,[非工作版本]:Win7 32bit/Qt 4.8.5/Qt creator 3.0.1/separate installation/MSVC2010build。[工作版本]:Win7 64位/Qt 5.2.1/Qt creator 3.0.1/integrated online installation/MSVC2010build。FYR