【发布时间】:2012-01-24 17:00:48
【问题描述】:
我正在使用 C++ 库,需要从 UTF-8 代码点创建一个无符号字符。例如,如果代码点是decimal 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)
在C++中试过:
unsigned char temp = (unsigned char)610;
// compiles, but
Debug::WriteLine((int)temp); // outputs 98 (??)
请提供一个 C++ 代码示例,其执行与上面的 javascript 示例相同。
环境在托管 C++ 中,但我想避免使用 CLR 类型,因为我正在与第 3 方库交互。
【问题讨论】:
-
Debug的类型是什么?Debug能识别 UTF 吗?因为 C++ ostreams 没有。您需要一个库来处理 UTF,尤其是 UTF8。 -
unsigned char只能保证保存最大 255 的值; Unicode 代码点可以更大。您的问题没有很好地说明。 -
啊,如果可以做到这一点,生活会轻松很多.....
-
没有 UTF-8 码位这样的东西,你是指 UTF-8 码位还是 Unicode 码位?
-
Debug::WriteLine 看起来像 .NET...似乎是 C++/CLI!?