如何使用c显示字符`£`?

时间:2012-11-08 14:51:30

标签: c encoding iso-8859-1

在参考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: �.

2 个答案:

答案 0 :(得分: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: £.

答案 1 :(得分:0)

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