如何将十进制NCR转换为Unicode字符(C ++)

时间:2017-05-03 10:27:11

标签: c++ unicode

我必须比较两个相同的中文字符串,但是当我在我的代码中获取一个字符串时,我得到了DECIMAL NCR值,即下一步(n)
我想将此十进制值转换为UNICODE CHARACTER以获得“下一步(n)”
如何将此十进制转换为unicode。
使用:MultiByteToWideChar:不工作

1 个答案:

答案 0 :(得分:1)

unicode代码点在C ++中没有直接表示。通常它以32位整数存储,但需要转换为它 要转换单个NCR,您可以简单地删除其中的所有非数字符号,并在您的情况下解析为基数为10的整数(例如,使用atoi)。 现在的问题是第二种格式是什么。如果是UTF-8UTF-16,UTF-32则需要正确解码。如果它是NCR,那么你没有问题 - 即使没有解码也要比较它们。

请注意。 UTF-8不是wchar,它是与ASCII兼容的可变长度编码,存储在名为code unitsoctets的8位bytes中。 UTF-16不是wchar,它也是以16位代码单元存储的可变长度编码(可能与wchar具有相同的大小)。