Fre*_*edL 5 c++ unsigned utf-8 char
我正在使用C++库,需要从UTF-8代码点创建一个unsigned char.例如,如果代码点是十进制610('拉丁字母小资本G'),我将如何在C++中创建它?
我javascript,我可以做以下事情:
var temp = String.fromCharCode(610);
console.log(temp); // Outputs a small 'G' (correct)
var codePoint = temp.charCodeAt(0);
console.log(codePoint); // Outputs 610 (correct)
Run Code Online (Sandbox Code Playgroud)
在C++中尝试过:
unsigned char temp = (unsigned char)610;
// compiles, but
Debug::WriteLine((int)temp); // outputs 98 (??)
Run Code Online (Sandbox Code Playgroud)
请提供C++中的代码示例,其执行与上面的javascript示例相同.
环境是在托管C++中,但我想避免使用CLR类型,因为我正在与第三方库连接.
小智 5
一个unsigned char小是保持值为610(假设一个字符串是8位宽,它只能保存0到255之间的值),所以它将包围*
使用char16_t来存储一个16位的字符(或char32_t对于一个32位的字符,这UTF-8需要).
char32_t temp = (char32_t)610;
Debug::WriteLine(temp); // outputs 610 (!!)
Run Code Online (Sandbox Code Playgroud)
如果要处理UTF-8 字符串,请使用UTF-8字符串文字:
u8"I'm a UTF-8 string."
Run Code Online (Sandbox Code Playgroud)
*在你的例子中它甚至会回绕两次:
610 - 256 - 256 = 98
| 归档时间: |
|
| 查看次数: |
1589 次 |
| 最近记录: |