QLocale codeToTerritory работает только с двузначными кодами
Я хотел бы получить название страны для любых кодов стран ISO 3166. В моем проекте в настоящее время используются трехзначные коды, поэтому, если возможно, из этого. Согласно документации Qt, QLocale::countryToTerritory должен решить эту проблему, но в моих тестовых программах он работает только с двузначными кодами. Я также попробовал устаревшую функцию codeToCountry, но результат тот же. Также числовой код не имеет никакого результата.
Вот простая тестовая программа:
#include <QCoreApplication>
#include <QLocale>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString l2 = "DE";
QString l3 = "DEU";
QString d3 = "276";
qDebug() << QLocale::codeToCountry(l2) << QLocale::codeToCountry(l3) << QLocale::codeToCountry(d3);
qDebug() << QLocale::codeToTerritory(l2) << QLocale::codeToTerritory(l3) << QLocale::codeToTerritory(d3);
return a.exec();
}
Результат:
QLocale::Germany QLocale::AnyTerritory QLocale::AnyTerritory
QLocale::Germany QLocale::AnyTerritory QLocale::AnyTerritory
Я пробовал с несколькими разными странами, все с теми же результатами.
Я построил проект с Qt 6.3.0 с компилятором MSVC2019 для Windows.
Документация просто неверна, или я что-то упустил?