我正在尋找一個關於將std::wstring
轉換爲std::string
的最佳方法的建議 - 但是快速和骯髒的轉換,用作std::map<std::string, int>
對象中的鍵。C++ std :: wstring std :: string - 快速和髒轉換用作std :: map中的鍵
地圖相當大,已很好融入項目已有,並只有需要此轉換,所以我認爲這將是浪費的地圖變成一個接受std::wstring
鍵一小撮作爲關鍵。
轉換的輸出並不重要,但它必須是一致的,以便每次都可靠地從地圖中提取正確的值。
該應用程序是一個Windows應用程序。
是否有任何已知的過程爲此目的可靠地進行粗略轉換?或者最好的方法是通過正常的,適當的轉換過程(如本文提問/回答:How to convert wstring into string?中所述)?
編輯:請記住 - 失去信息是罰款只要東西是一致的。即如果我扔了一些日文字符,並且他們一直轉換成相同的(可能是垃圾)std::string
,那很好。這絕不會用於顯示,只能用作從地圖中提取值的關鍵。
謝謝!
[adapter](http://en.wikipedia.org/wiki/Adapter_pattern)? – krlmlr 2013-03-11 07:35:27
也許你應該將'std :: wstring'轉換爲[UTF-8](http://en.wikipedia.org/wiki/UTF-8),並將'std :: string'設置爲該值。您將通過這種方式避免虛假的'\ 0'字節。 – 2013-03-11 07:55:38
爲什麼你一直使用'std :: wstring'? [在任何地方使用UTF8。](http://utf8everywhere.org/) – 2013-03-11 08:49:41