将带有utf8字符的char数组转换为十六进制

时间:2017-12-24 22:02:13

标签: c++ unicode utf-8 ascii

我有以下代码示例:

#include <iostream>

int main() {

    char test[] = "êêê"; // test[10] won't compile. Use test[13] or just test[]

    std::cout << "The string " << test << " consists of " << sizeof test << " bytes: ";
    for (std::size_t n = 0; n < sizeof test; ++n)
        std::cout << std::hex << +(unsigned char)test[n] << ' ';

    std::cout << '\n';
}

在像cpp.sh这样的c ++在线shell上给出了以下结果:

The string êêê consists of 7 bytes: c3 aa c3 aa c3 aa 0

当我在VS2013上尝试时,它给了我结果:

The string êêê consists of 7 bytes: a8 ba a8 ba a8 ba 0

有人可以向我解释为什么会这样,以及如何解决这个问题?我试图改变字符集,但它仍然给出了相同的东西。

0 个答案:

没有答案