我想将Unicode字符(波斯语)转换为int。
根据{{3}}列表,'آ'
的Unicode编号为U+0622
。
假设我想将U+0622
作为整数值。我写了这段代码:
unsigned int Alef = (unsigned int)'آ';
std::cout << Alef << std::endl;
输出:
63
正确答案是1570,如您所见输出错误。我猜它只会转换Unicode字符的第一个字节。
如何转换Unicode字符以给出正确答案?
答案 0 :(得分:4)
尝试将该字符表示为wchar
字面值:
unsigned int Alef = (unsigned int) L'آ';
std::cout << Alef << std::endl;
但要确保你保存为Unicode,nano,例如,将'Â'转换为'?'在保存之前。和Windows上的记事本一样,我认为呢?
另外要添加到我的答案中,您应该将Unicode字符写入std::wcout
而不是std::cout
,因为cout用于单字节字符,而wcout用于wchar
类型。
编辑:记事本保存为Unicode