如何在 C 中使用扩展 ASCII 表的符号?

Posted

技术标签:

【中文标题】如何在 C 中使用扩展 ASCII 表的符号?【英文标题】:How to use symbols of extended ASCII table in C? 【发布时间】:2013-06-26 02:20:04 【问题描述】:

我已尝试打印 扩展 ASCII 字符

http://www.theasciicode.com.ar/

但所有这些符号都以问题字符形式打印在白色背景上?

我使用以下循环来打印该符号:

for (i = 0; i <= 30; i++)
    printf("%c", 201); 

问题:有没有办法打印那些扩展ASCII字符?或者也许有这些字符的特殊库?


操作系统 Linux Ubuntu 13.04,代码::Blocks 12.11 IDE。

【问题讨论】:

对 ASCII 的扩展是非标准的,最好避免。 你想说我必须避开它们吗? 希望配置良好的终端和 ncurses 会有所帮助。发射输出取决于终端。你在用什么?电脑?一个带有 xterm 的 linux 盒子? 你没有来避免扩展 ASCII,但如果你不这样做,那么你可能会遇到很多可移植性等问题。 @JulianKhlevnoy 如果您使用的是 unix/linux,它还取决于您使用的终端(Xterm 或 RXVT 或 VT100)。如果您在 DOS IIRC 上,则有一个设备驱动程序可以管理此类 ascii 异常。在 Win32 上老实说我不知道​​ 【参考方案1】:

使用 unicode 比使用非标准的扩展 ASCII 更好。关于在 C 中打印 unicode 字符的线程: printing-utf-8-strings-with-printf-wide-vs-multibyte-string-literals

但确实你需要复制粘贴 unicode 字符..

更好的开始方式:

#include <stdio.h>

int main() 
    printf("\u2500\u2501\n");

请参阅https://en.wikipedia.org/wiki/Box-drawing_character#Unicode 了解此扩展 ASCII 样式框艺术的 unicode 字符。

【讨论】:

以上是关于如何在 C 中使用扩展 ASCII 表的符号?的主要内容,如果未能解决你的问题,请参考以下文章

如何在记事本++中搜索DC1之类的符号

C零基础课程-09-文字数据的定义和使用

如何使C++将数字转换为ASC2码表中对应的符号输出?

如何使用 printf 在 C 中打印无穷大符号 [重复]

c中如何输出一个字符的ASCII码

如何使用 Perl 在文件中查找扩展的 ASCII 字符?