2016-04-17 4 views
-1

Mehr specificly, in C++:Wie lautet der Name des Gebietsschemas für Koreanisch?

#include <locale> 
#include <algorithm> 
#include <iostream> 
#include <string> 
int main() { 
    std::wstring v[3] = {L"홍진호", L"이상민", L"장동민"}; 
    std::locale loc("Korean.949"); 
    std::sort(v, v + 3, loc); 
    std::wcout.imbue(loc); 
    std::wcout << v[0] << ' ' << v[1] << ' ' << v[2] << std::endl; 
    return 0; 
} 

Dies funktioniert nicht. Ich benutze Windows 10 64bit, MinGW und GNU GCC 4.9.2.

Wie lautet der Gebietsschema-Name für Koreanisch, für loc?

Antwort

0

https://stackoverflow.com/a/4497266/1670021

Sieht aus wie unter Windows mit gcc, das ist nicht gut funktionieren kann. Sie können möglicherweise die C setlocale verwenden, aber das ist keine gute Option. Vielleicht würde die Verwendung einer leeren Zeichenfolge für Ihren Anwendungsfall funktionieren?

+0

Das könnte ein Problem sein, aber das ist nicht der Punkt hier. "Korean.949" ist kein gültiger Name, also frage ich, was das Richtige ist. –

+0

Nun, Sie können ".949" oder "ko_KR" versuchen. Siehe hier: http://stackoverflow.com/questions/4406895/what-stdlocale-names-are-available-on-common-windows-compilers - Locale-Namen sind Implementierungen definiert. –

+0

Dieser Name ist gültig, aber leider unterstützt MinGW keine breiten Zeichen ... Ich habe stattdessen schmale Zeichen verwendet, aber ich bekomme diese seltsame Ausgabe:? 띿쭊 ??? 댁긽 誘 ?? λ 룞 誘 ? 댁긽 誘 ?? λ 룞 誘 ?? 띿쭊? –