是否存在用於編碼UTF-32字符串的32位寬字符?我想通過std::wstring
來做到這一點,它顯然在Windows平臺上顯示了一個寬字符的大小是16位。用於Unicode編碼的wchar_t的大小
2
A
回答
6
在很多平臺上,您將無法使用std::wstring
,因爲它將具有16位元素。
相反,您應該使用std::basic_string<char32_t>
,但這需要一個具有某些C++ 0x支持的編譯器。
1
ICU開源庫會有所幫助,但Windows/VS2010的基礎不會幫助你。
4
wchar_t
的大小是平臺相關的,它獨立於UTF-8,UTF-16和UTF-32(它可以用來表示unicode數據,但沒有說它代表的是) 。
我強烈建議使用UTF-8和std::string
作爲內部字符串表示形式,並使用已建立的庫(如ICU)進行涉及unicode的複雜操作和轉換任務。
相關問題
- 1. Windows上代理對(Unicode字符超出BMP)的wchar_t *大小
- 2. C++ wchar_t *等於不區分大小寫其他wchar_t *
- 3. wchar_t的Valgrind的問題 - 大小8
- 4. 用unicode編碼的PHP
- 5. Python3編碼的Unicode
- 6. Python的Unicode編碼
- 7. 的Unicode編碼和解碼
- 8. Concat wchar_t C中的Unicode字符串?
- 9. 小工具,用Unicode編寫Unicode數據
- 10. 用於編程的字體大小?
- 11. 擺脫wchar_t大小鏈接器警告
- 12. Unicode編碼/解碼
- 13. ASCII編碼和UNICODE編碼
- 14. Python Unicode編碼
- 15. Java Unicode編碼
- 16. 用於C/C++的小型開放源碼Unicode庫
- 17. Dropbox的Unicode編碼衝突
- 18. unicode的未知編碼
- 19. 使用編碼大小大於塊大小的RSA交換對稱密鑰的問題
- 20. 是否有任何不區分大小寫的Unicode字符編碼類?
- 21. 轉換雙打的可變大小的數組wchar_t的
- 22. 的Javascript高級的Unicode編碼/解碼
- 23. 用於正則表達式的Python unicode編碼
- 24. System.Windows.Forms.RichTextBox用於unicode字符的是什麼編碼?
- 25. basic_string <wchar_t> UTF16編碼爲NSString
- 26. 用java編碼的Unicode base 64
- 27. Python使用unicode編碼的字符串
- 28. base64編碼圖像大小
- 29. UTF-8編碼大小
- 30. BMP文件大小編碼
小心!記住,僅僅因爲你使用的是32位編碼並不意味着你可以假設每個代碼點代表一個字符!小心不要分割複合字符。根據你在做什麼,你可能想要尋找一個將你的字符串分解成字形集羣的庫。見http://www.unicode.org/reports/tr29。 – 2011-03-16 23:40:35