繁体   English   中英

如何在C中打印非ASCII字符

[英]how to print non-ASCII characters in C

我尝试使用C输出字符列表: http : //www.alt-codes.net/

for (i=0; i<len; i++){
    printf("%d\t: %c", i, i);
}

我得到的所有非ASCII字符的问题? 在Ubuntu上工作。

我怎样才能很好地输出它们。

格式将很差,但除此之外,您发布的代码也可以工作。

ASCII字符0-31是各种空格字符,没有标准化的方式来打印它们。 您发布的链接是一个通用但非标准的“扩展ASCII表”。 不能保证这些确切的符号将被打印在您的特定平台上。

它们在Windows 7上对我来说运行良好,并通过GCC和Embarcadero C ++测试,都可以打印这些符号。 但是在另一个OS和/或编译器上,可能会打印不同的符号或根本不打印任何内容。

在所有系统上,只能保证ASCII字符32-126是可打印的,并且符号相同。

各种ASCII字符(例如许多32位以下的ASCII字符)不可打印。 您需要在打印之前将无法打印的内容转换为其他内容(例如空格)。

请注意,链接到的ALT代码不是ASCII代码。

您的字符集可能不包含字符,如 您正在查看的是alt键代码符号列表,而不是ASCII。

根据您的需要,您可以采用十六进制编辑器的方法,并且仅打印具有图形表示形式的那些字符,为此,您可以使用isprint()isgraph() (最新的方法与isprint()基本相同,但是不要打印ctype.h中定义的空格),例如:

for (i = 0; i < len; i++) {
    printf("%d\t: %c", i, isprint(i) ? i : '.');
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM