我正在寻找一个关于将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