相关疑难解决方法(0)

C++中的Unicode处理

在C++中进行Unicode处理的最佳实践是什么?

c++ unicode

103
推荐指数
4
解决办法
4万
查看次数

C++ 11中字符串文字的Unicode编码

在一个相关的问题之后,我想问一下C++ 11中的新字符和字符串文字类型.看来我们现在有四种字符和五种字符串文字.角色类型:

char     a =  '\x30';         // character, no semantics
wchar_t  b = L'\xFFEF';       // wide character, no semantics
char16_t c = u'\u00F6';       // 16-bit, assumed UTF16?
char32_t d = U'\U0010FFFF';   // 32-bit, assumed UCS-4
Run Code Online (Sandbox Code Playgroud)

和字符串文字:

char     A[] =  "Hello\x0A";         // byte string, "narrow encoding"
wchar_t  B[] = L"Hell\xF6\x0A";      // wide string, impl-def'd encoding
char16_t C[] = u"Hell\u00F6";        // (1)
char32_t D[] = U"Hell\U000000F6\U0010FFFF"; // (2)
auto     E[] = u8"\u00F6\U0010FFFF"; // (3)
Run Code Online (Sandbox Code Playgroud)

问题是:\x/ \u/ \U …

c++ unicode utf string-literals c++11

76
推荐指数
1
解决办法
5万
查看次数

如何通过指针读取UTF-8字符?

假设我将UTF-8内容存储在内存中,如何使用指针读取字符?我认为我需要注意第8位表示多字节字符,但我究竟如何将序列转换为有效的Unicode字符?另外,wchar_t存储单个Unicode字符的正确类型是什么?

这就是我的想法:


   wchar_t readNextChar (char*& p)
   { 
       wchar_t unicodeChar;
       char ch = *p++;

       if ((ch & 128) != 0)
       {
           // This is a multi-byte character, what do I do now?
           // char chNext = *p++; 
           // ... but how do I assemble the Unicode character?   
           ...
       }
       ...
       return unicodeChar;
   }  

c++ unicode utf-8 character-encoding

6
推荐指数
1
解决办法
9757
查看次数

标签 统计

c++ ×3

unicode ×3

c++11 ×1

character-encoding ×1

string-literals ×1

utf ×1

utf-8 ×1