使用写入功能打印扩展的ascii

时间:2017-11-21 19:28:26

标签: c

如何使用c语言的写入功能从扩展的ascii中打印字符128?

#include <unistd.h>

int main(void)
{
    int c;

    c = 128;
    write(1, &c, 1);
    return(0);
}

输出:

Ascii延长了128:Ç

2 个答案:

答案 0 :(得分:2)

使用wchar_t

#include <stdio.h>
#include <wchar.h>
#include <locale.h>

int main(void)
{
    wchar_t c;

    setlocale(LC_ALL, "");
    for (c = 128; c < 256; c++) {
        wprintf(L"%lc\n", c);
    }
    return 0;
}

答案 1 :(得分:2)

编写Unicode版本

uint16_t x = 0x87C3; // little endian (beware endianness matters)
write(1, &x, 2);

(具有2个字节的类型)

要删除任何字节顺序问题,请改用数组

uint8_t y[] = { 0xC3, 0x87 };
write(1, y, 2);