C++ qmap unicode qstring不工作

C++ qmap unicode qstring不工作,c++,qt,unicode,qmap,C++,Qt,Unicode,Qmap,我正在尝试使用从语言名称到本地名称的映射 文件名,例如: QMap<QString, QString> map; map.insert("Русский", "russian"); 但同样的结果。我做错了什么?我真的需要这张地图 在多个地方使用,无需复制代码 谢谢 ==编辑== 对不起,我以为我在编辑我自己的。这是非工作代码,与 我制作的短样本很有效。工作文件是一个大得多的文件 在CTOR中: m_ui->setupUi(this); m_langMap.insert(QS

我正在尝试使用从语言名称到本地名称的映射 文件名,例如:

QMap<QString, QString> map;
map.insert("Русский", "russian");
但同样的结果。我做错了什么?我真的需要这张地图 在多个地方使用,无需复制代码

谢谢

==编辑==

对不起,我以为我在编辑我自己的。这是非工作代码,与 我制作的短样本很有效。工作文件是一个大得多的文件

在CTOR中:

m_ui->setupUi(this);

m_langMap.insert(QString::fromWCharArray(L"English"), "english");
m_langMap.insert(QString::fromWCharArray(L"Dansk"), "dansk");
m_langMap.insert(QString::fromWCharArray(L"Nederlands"), "dutch");
m_langMap.insert(QString::fromWCharArray(L"Čeština"), "czeck");
m_langMap.insert(QString::fromWCharArray(L"Slovenský"), "slovak");
m_langMap.insert(QString::fromWCharArray(L"Magyar"), "hungarian");
m_langMap.insert(QString::fromWCharArray(L"Român"), "romanian");
m_langMap.insert(QString::fromWCharArray(L"Latviešu"), "latvian");
m_langMap.insert(QString::fromWCharArray(L"Lietuvių"), "lithuanian");
m_langMap.insert(QString::fromWCharArray(L"Polski"), "polish");
m_langMap.insert(QString::fromWCharArray(L"Português"), "portuguese");
m_langMap.insert(QString::fromWCharArray(L"Español"), "spanish");
m_langMap.insert(QString::fromWCharArray(L"Français"), "french");
m_langMap.insert(QString::fromWCharArray(L"Italiano"), "italian");
m_langMap.insert(QString::fromWCharArray(L"Svenska"), "swedish");
m_langMap.insert(QString::fromWCharArray(L"Русский"), "russian");
m_langMap.insert(QString::fromWCharArray(L"Українська"), "ukranian");
m_langMap.insert(QString::fromWCharArray(L"Русский"), "russian");
m_langMap.insert(QString::fromWCharArray(L"中文"), "chinese");
m_langMap.insert(QString::fromWCharArray(L"日本語"), "japanese");

QMap<QString, QString>::const_iterator it = m_langMap.begin();
while (it != m_langMap.end())
{
    m_form.language_combo->addItem(it.key());
    ++it;
}
muui->setupUi(此);
m_langMap.insert(QString::fromWCharArray(L“English”),“English”);
m_langMap.insert(QString::fromWCharArray(L“Dansk”),“Dansk”);
m_langMap.insert(QString::fromWCharArray(L“Nederlands”),“dutch”);
m_langMap.insert(QString::fromWCharArray(L“šeština”),“czeck”);
m_langMap.insert(QString::fromWCharArray(L“Slovenský”),“slovak”);
m_langMap.insert(QString::fromWCharArray(L“Magyar”),“匈牙利语”);
m_langMap.insert(QString::fromWCharArray(L“Rom–n”),“romanian”);
m_langMap.insert(QString::fromWCharArray(L“Latviešu”),“latvian”);
m_langMap.insert(QString::fromWCharArray(L“Lietuvi”),“立陶宛语”);
m_langMap.insert(QString::fromWCharArray(L“Polski”),“polish”);
m_langMap.insert(QString::fromWCharArray(L“葡萄牙语”),“葡萄牙语”);
m_langMap.insert(QString::fromWCharArray(L“Español”),“西班牙语”);
m_langMap.insert(QString::fromWCharArray(L“Français”),“french”);
m_langMap.insert(QString::fromWCharArray(L“意大利语”),“意大利语”);
m_langMap.insert(QString::fromWCharArray(L“Svenska”),“swedish”);
m_langMap.insert(QString::fromWCharArray(L“撸撸撸撸撸撸撸撸撸撸2578;
m_langMap.insert(QString::fromWCharArray(L“Уаааааааааааааа;
m_langMap.insert(QString::fromWCharArray(L“撸撸撸撸撸撸撸撸撸撸2578;
m_langMap.insert(QString::fromWCharArray(L)中文"), "中文);;
m_langMap.insert(QString::fromWCharArray(L)日本語"), "日文);;
QMap::const_迭代器it=m_langMap.begin();
while(it!=m_langMap.end())
{
m_form.language_组合->addItem(it.key());
++它;
}
==编辑2===

我在这里提出了一个新问题:

这项工作:

map.insert(QString::fromWCharArray(L"Русский"), "russian");
编辑:

使用QStringList也可以:

QStringList sl;
sl << QString::fromWCharArray(L"Русский")
   << QString::fromWCharArray(L"English")
   << QString::fromWCharArray(L"日本語");
ui->comboBox->addItems(sl);
QStringList-sl;
sl这是有效的:

map.insert(QString::fromWCharArray(L"Русский"), "russian");
编辑:

使用QStringList也可以:

QStringList sl;
sl << QString::fromWCharArray(L"Русский")
   << QString::fromWCharArray(L"English")
   << QString::fromWCharArray(L"日本語");
ui->comboBox->addItems(sl);
QStringList-sl;

sl别忘了将源文件保存为UTF-8或1251代码页。如果我使用1251编码(Windows西里尔文)保存源文件,这对我很有效。别忘了将源文件保存为UTF-8或1251代码页。如果我使用1251编码(Windows西里尔文)保存源文件,这对我很有效谢谢Roku,L在那里做什么?有没有办法用qDebug()把它打印出来?感谢您的帮助!您需要使用
chcp
命令为命令提示符设置代码页。同样,我仍然没有找到这个问题的答案。我使用的是Linux机器。在我将其插入地图后,我需要将其添加到组合框中,但这不起作用(它没有按预期显示)。我该怎么做?这在我的Linux机器上工作:
ui->comboBox->addItem(QString::fromHararray(L“П撸С撸撸撸”)你的源代码文件是用UTF-8编码保存的吗?谢谢Roku,L在那里做什么?有没有办法用qDebug()打印出来?感谢您的帮助!您需要使用
chcp
命令为命令提示符设置代码页。同样,我仍然没有找到这个问题的答案。我使用的是Linux机器。在我将其插入地图后,我需要将其添加到组合框中,但这不起作用(它没有按预期显示)。我如何做到这一点?这在我的Linux机器中起作用:
ui->comboBox->addItem(QString::fromWCharArray(L“П峈С峈峈”);
您的源代码文件是使用UTF-8编码保存的吗?