是否有32位宽的字符用于编码UTF-32字符串?我想通过std::wstring
来做这件事,显然我在Windows平台上显示了16位宽字符的大小。
答案 0 :(得分:6)
您将无法在许多平台上使用std::wstring
执行此操作,因为它将具有16位元素。
相反,您应该使用std::basic_string<char32_t>
,但这需要编译器支持一些C ++ 0x。
答案 1 :(得分:5)
wchar_t
的大小取决于平台,它独立于UTF-8,UTF-16和UTF-32(它可用于表示unicode数据,但没有任何内容可以表示它代表那个)。
我强烈建议将UTF-8与std::string
一起用于内部字符串表示,并使用已建立的库(如ICU)进行涉及unicode的复杂操作和转换任务。
答案 2 :(得分:1)
ICU开源库会有所帮助,但基于Windows / VS2010将无法帮助您。
答案 3 :(得分:0)
只需使用typedef
!
它看起来像这样:
typedef int char_32;
并像这样使用它:
char_32 myChar;
或作为c字符串:
char_32* string_of_32_bit_char = "Hello World";