0

参考 ISO 8859-1 标准后,我知道字符£有值0xa3,我想用 c 显示它,所以我写了这个程序:

#include <stdio.h>

int main()
{
        printf( "\\xa3 is: %c.\n", '\xa3' );
        printf( "£ is: %c.\n", '£' );

        return 0;
}

我将此源代码文件保存为 iso 8859-1 编码。我希望我的程序在遇到每个£时显示两次。printf%c

但是,它不起作用,为什么?如何修改我的程序以实现我的目标。

我正在使用Linux。

编辑:

它的显示是这样的:

\xa3 is: �.
£ is: �.
4

2 回答 2

2

看起来您的终端运行的是 UTF-8 而不是 8859-1。尝试这个:

#include <stdio.h>

int main(void)
{
    printf("\\xC2\\xA3 is: %s.\n", "\xC2\xA3");
    printf("£ is: %s.\n", "£");
    return 0;
}

在我的 Mac(终端以 UTF-8 运行)上,输出为:

\xC2\xA3 is: £.
£ is: £.
于 2012-11-08T15:02:36.167 回答
0

您需要确保输出终端与您(随机)为此字符选择的编码匹配。如果您使用的是ISO 8859-1,但您的终端期待例如UTF-8,您可能会得到您所看到的结果。

于 2012-11-08T15:00:18.757 回答