C++ 哪个值传递给std::locale?

C++ 哪个值传递给std::locale?,c++,localization,C++,Localization,如何检查,应将哪个值传递给std::locale?我写了一个简单的程序: #include <cstdio> #include <locale> #include <stdexcept> int main() { try { std::locale("plk_pol"); } catch(std::runtime_error) { printf("Can't load locale.\n");

如何检查,应将哪个值传递给
std::locale
?我写了一个简单的程序:

#include <cstdio>
#include <locale>
#include <stdexcept>

int main()
{
   try
   {
      std::locale("plk_pol");
   }
   catch(std::runtime_error)
   {
      printf("Can't load locale.\n");
      return 1;
   }

   return 0;
}
#包括
#包括
#包括
int main()
{
尝试
{
标准::地区(“plk_pol”);
}
捕获(标准::运行时错误)
{
printf(“无法加载区域设置。\n”);
返回1;
}
返回0;
}
但它给了我错误的信息。这很奇怪,因为std::setlocale(LC_ALL,'plk_pol')工作。我尝试了其他值,比如
pl\u pl
polish\u poland
——行为也是一样的。甚至
en_US.utf8
也会给出错误。我能设置的唯一区域设置是
C


我有带波兰本地化设置的Windows7。问题是:我在哪里可以检查,哪些地区在我的系统中是可以接受的?

我知道它对某些人有效,因为我的代码是基于谷歌的想法编写的。但它对我不起作用,我想知道为什么以及如何修复它……我认为这个链接对你来说可能很有趣,尽管它没有回答你的问题:你错了,它回答了我的问题。“MIWW C++ STD::区域设置接受“C”和“POSIX”,它不支持其他区域,实际上GCC只支持GNU C库的区域设置,基本上只在Linux下。StestLaLar是本地Windows API调用,所以应该支持上面提到的所有内容。“我使用MINW,但我认为它不重要。这狗屎。。。有消息吗,它什么时候能在MinGW工作?无论如何,请发表你的评论(或我刚才引用的)作为答案,我会接受的。