Cod*_*ode 2 c ascii extended-ascii
我正在尝试下面的代码来打印所有的ASCII字符,但它不打印任何127到160.我知道它们是控制字符集或一些拉丁/西班牙字符.如果从Windows复制粘贴相同的字符,则它在unix中打印得很好.为什么不通过C程序?
#include <stdio.h>
int main()
{
    int i;
    char ch;
    for(i = 0; i < 256; i++)
    {
        printf("\n%03d %02x %02c",i ,i ,i);
    }
}
ASCII是一个7位代码.字节值大于128的解释取决于操作系统,语言环境/语言设置等.它们不是标准的.在英文版的Windows下,它们最常由CP1252定义; 在Linux上,它们通常是ISO-8859-1.有些操作系统使用UTF-8,它不是字符集本身,而是通过对大多数字符使用多个字节将Unicode编码为8位流的方法.如果你真的需要使用标准ASCII 32-126之外的字符,你应该使用宽字符和区域设置.
BTW,字符127是一种特殊情况:它是控制字符"rubout",表示擦除数据.(这样做是为了通过打孔所有孔来擦除一段纸带! - 是的,我们中的一些人已经足够记住纸带了).
| 归档时间: | 
 | 
| 查看次数: | 7198 次 | 
| 最近记录: |