¿Cuál es el equivalente de Windows para la configuración regional en_US.UTF-8?

Si quiero hacer el siguiente trabajo en Windows, ¿cuál es la configuración regional correcta y cómo detecto que está realmente presente? ¿Funciona este código de manera universal o es solo mi sistema?

Básicamente, no tienes suerte: http://www.siao2.com/2007/01/03/1392379.aspx

Aunque no existe un buen soporte para las configuraciones regionales con nombre, Visual Studio 2010 incluye las facetas de conversión UTF-8 requeridas por C ++ 11: std::codecvt_utf8 para UCS2 y std::codecvt_utf8_utf16 para UTF-16:

 #include  #include  #include  #include  #include  void prepare_file() { // UTF-8 data char utf8[] = {'\x7a', // latin small letter 'z' U+007a '\xe6','\xb0','\xb4', // CJK ideograph "water" U+6c34 '\xf0','\x9d','\x84','\x8b'}; // musical sign segno U+1d10b std::ofstream fout("text.txt"); fout.write(utf8, sizeof utf8); } void test_file_utf16() { std::wifstream fin("text.txt"); fin.imbue(std::locale(fin.getloc(), new std::codecvt_utf8_utf16)); std::cout << "Read from file using UTF-8/UTF-16 codecvt\n"; for(wchar_t c; fin >> c; ) std::cout << std::hex << std::showbase << c << '\n'; } void test_file_ucs2() { std::wifstream fin("text.txt"); fin.imbue(std::locale(fin.getloc(), new std::codecvt_utf8)); std::cout << "Read from file using UTF-8/UCS2 codecvt\n"; for(wchar_t c; fin >> c; ) std::cout << std::hex << std::showbase << c << '\n'; } int main() { prepare_file(); test_file_utf16(); test_file_ucs2(); } 

esta salidas, en mi Visual Studio 2010 EE SP1

 Read from file using UTF-8/UTF-16 codecvt 0x7a 0x6c34 0xd834 0xdd0b Read from file using UTF-8/UCS2 codecvt 0x7a 0x6c34 0xd10b Press any key to continue . . . 

Por MSDN , se llamaría “english_us.65001”. Pero la página de códigos 65001 es algo escamosa en Windows.