C++中的扩展ASCII



我尝试执行以下代码:

    #include <iostream>
using namespace std;
int main() {
    unsigned char datoChar = 168;
    cout << datoChar << endl;
    return 0;
}

它返回一个带有"但它应该返回";?">

您没有指定您在哪个平台上,以及当前的locale是什么,但如果您在类似Unix的操作系统上运行,终端很可能会将字符解释为UTF-8,而不是cp437。CP437、CP1252和扩展ASCII现在大多已经过时,并且仅用于类似DOS的终端,如Windows的cmd.exe。您可以尝试使用CHCP命令在CMD.EXE中切换到CP437。

在UTF-8中,0x7f上的所有字节都被认为是保留的,因为它们用于实现多字符编码。在UTF-8中,"?"是代码点U+00BF,跨越两个独立的字节。

您可以使用十六进制uXXXX表示法将其指定为文字,例如在中

std::cout << "u00BF" << std::endl;

相关内容

  • 没有找到相关文章

最新更新