Ich bin auf der Suche nach ein paar Tipps auf dem besten Weg, um eine std::wstring
in std::string
zu konvertieren - aber a schnelle und schmutzige Konvertierung zur Verwendung als Schlüssel in einem Objekt.C++ - std :: wstring zu std :: string - schnelle und dreckige Konvertierung für den Einsatz als Schlüssel in std :: map
Die Karte ist recht groß, und ist bereits gut in das Projekt integriert bereits, und es gibt nur eine Handvoll von Schlüsseln, die diese Umwandlung erfordern, so denke ich, es verschwenderisch sein wird die Karte in eine ändern, die std::wstring
akzeptiert als Schlüssel.
Die Ausgabe der Konvertierung ist nicht wirklich wichtig, aber sie muss konsistent sein, um die korrekten Werte jedes Mal zuverlässig aus der Karte zu ziehen.
Die Anwendung ist eine Windows-Anwendung.
Gibt es ein bekanntes Verfahren, um eine grobe Umwandlung zuverlässig für diesen Zweck durchzuführen? Oder würde der beste Weg über den üblichen, richtigen Umwandlungsprozess sein (wie in dieser SO Frage/Antwort beschrieben: How to convert wstring into string?)?
Edit: Bitte beachten Sie - verlieren Informationen in Ordnung ist solange Dinge konsistent sind. Wenn ich ein paar japanische Schriftzeichen einwerfe und sie konsistent in denselben (möglicherweise Müll) std::string
konvertieren, ist das in Ordnung. Dies wird niemals zur Anzeige dienen, sondern nur als Schlüssel zum Herausziehen von Werten aus einer Karte.
Danke!
Ein [Adapter] (http://en.wikipedia.org/wiki/Adapter_pattern)? – krlmlr
Vielleicht sollten Sie die 'std :: wstring 'zu [UTF-8] (http://en.wikipedia.org/wiki/UTF-8) konvertieren und die' std :: string' auf diesen Wert setzen. Sie werden auf diese Weise falsche '\ 0' Bytes vermeiden. –
Warum verwenden Sie überhaupt 'std :: wstring'? [Benutze UTF8 überall.] (Http://utf8everywhere.org/) –