【问题标题】:Extended Ascii characters in Code::Blocks C++Code::Blocks C++ 中的扩展 Ascii 字符
【发布时间】:2012-02-07 23:00:09
【问题描述】:

我正在尝试在使用 C++ 和 Code::Blocks(字符代码大于 128)的控制台应用程序中使用扩展的 Ascii 代码。 http://www.asciitable.com/ 控制台在菱形内显示一个问号。

到目前为止我试过了:

char myChar = 200;
cout << myChar;

cout << static_cast<char>(200);

【问题讨论】:

  • 扩展 ASCII 不存在。说明您想要的编码,并将您的控制台设置为使用所述编码。
  • 如果我们想将其称为扩展 ascii,那么我们可以。就这样!
  • @DavidHeffernan:问题是,有很多“扩展ASCII”编码。参考a similar question with better answers
  • 链接中的内容是codepage 437。我建议阅读本网站的共同创建者this article,以稍微增加您对字符编码的了解。
  • 假设我想使用 UTF-8 编码并在控制台中打印字符。我该怎么做?

标签: c++ codeblocks extended-ascii


【解决方案1】:

char 不能容纳整个字符集

请改用 unsigned char

unsigned char myChar = 200;
cout << myChar << endl;

char 通常是 signed char。 它可以保存从 -128 到 127 的值。ASCII 非常适合 0 到 127,因此使用 ASCII 时 char 是合理的。

对于非 ASCII 字符 128 到 255,您需要更大的字符。 unsigned char 可以存储从 0 到 255 的值。这涵盖了整个字符集。 这正是您所需要的。

还有其他需要研究的东西。您可以阅读有关 unicode 的信息。但是 unsigned char 应该可以帮助您解决当前的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 2020-08-23
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多