我想要一个函数'降低'(从单词)在两种语言上正确工作,例如英语和俄语。我该怎么办?我应该使用std :: wstring,还是我可以使用std :: string? 另外我希望它是跨平台的,不要重新发明轮子。如何使语言友好的功能降低?
2
A
回答
6
对于这种事情的规范库是ICU:
还有一个升压包装:
http://www.boost.org/doc/libs/1_55_0/libs/locale/doc/html/index.html
另见这个问题: Is there an STL and UTF-8 friendly C++ Wrapper for ICU, or other powerful Unicode library
首先确保你了解这个骗局您可以牢牢掌握Unicode和更一般的编码系统。
一些很好的读取快速启动:
0
我认为这个解决方案是确定的。我不确定它适合所有情况,但这很有可能。
#include <locale>
#include <codecvt>
#include <string>
std::string toLowerCase (const std::string& word) {
std::wstring_convert<std::codecvt_utf8<wchar_t> > conv;
std::locale loc("en_US.UTF-8");
std::wstring wword = conv.from_bytes(word);
for (int i = 0; i < wword.length(); ++i) {
wword[i] = std::tolower(word[i], loc);
}
return conv.to_bytes(wword);
}
相关问题
- 1. 好友功能
- 2. MPI分钟功能降低
- 3. JAVASCRIPT亮度功能 - 降低
- 4. 降低功耗
- 5. 如何正确访问好友功能?
- 6. 如何编写DataFrame友好功能
- 7. 如何使用此功能降低怎么办?
- 8. 如何使用CTRL + p使用打印机友好的功能?
- 9. 好友功能和实现
- 10. 访问好友功能
- 11. 为“查找好友”功能
- 12. 实现好友功能
- 13. 如何降低select语句的成本?
- 14. 如何降低
- 15. Cloudant列表功能或单独降低
- 16. 降低过载功能(常量和VS&)
- 17. 主成分分析和功能降低
- 18. 降低python降价能力
- 19. 如何降低Windows CE设备上的ActiveSync功能
- 20. neo4j匹配语句性能降低
- 21. 如何降低使用jQuery
- 22. 如何降低助推术语dismax
- 23. 实施语法降低语言解析器
- 24. 索引如何降低MySQL的性能?
- 25. 如何实现一种功能语言
- 26. 功能的“自然语言”
- 27. Lisp语言的功能
- 28. 跨多个文件的好友功能
- 29. 用户友好的网址从功能
- 30. NVL()降低性能
这是一个复杂的问题。确保你知道区域设置,并且你已经阅读了这个:http://www.joelonsoftware.com/articles/Unicode.html –
最后,为了做到这一点,你不得不使用unicode字符串,您选择的编码(更喜欢UTF-8)。对于单个unicode代码点,未正确定义更改大小写(低,高,标题,折叠)。尽管如此,还有很多语言对这些转换的定义有冲突。 – Deduplicator
所以我应该使用unicode,还有什么?我确切知道我将会拥有哪些语言。其中之一。它无法帮助一些 - 如何? –