Widechar到字节使用位模式?

时间:2011-02-11 18:07:30

标签: c++ unicode utf-8

如果已知UTF-8编码的宽字符的字节数,是否可以使用以下方法获取字节?

例如:

宽字符¿代码191到字节为-62-65

我试图将191中的8位装入插槽但没有得到相同的结果

110[0][0][0][1][0]   10[1][1][1][1][1][1]

      127                   255

1 个答案:

答案 0 :(得分:1)

首先,不要转换为有符号字节。这只会让人感到困惑。因此,代码点191产生字节序列194 191

Decimal: 194                   191
Binary:  110[0][0][0][1][0]    10[1][1][1][1][1][1]

要生成这些字节,请从右边缘开始。你从191中得到6位,从194得到两位,剩下3位剩余,产生:

Binary:  00000[0][0][0]    [1][0][1][1][1][1][1][1]
Decimal: 0                 191

Wikipedia对这一切的运作方式有一个非常好的写作。