如何在c中将ascii和扩展ascii转换为int

如何在c中将ascii和扩展ascii转换为int,c,ascii,C,Ascii,有没有办法将ASCII/扩展ASCII字符的十进制值(int)用C表示(特别是扩展字符) ASCII和扩展ASCII表: 我的一些代码问题示例: int a = (int) 'a'; int b = (int) '│'; printf("%i\n", a); printf("%i\n", b); 输出为: 97 14849154 在ASCII表中,”│" 通常为179。OP'平台正在使用与基本编码集之外的字符串文字有关的实现定义的行为 UTF-8编码。'│'是一个Unicode字符 当编码

有没有办法将ASCII/扩展ASCII字符的十进制值(int)用C表示(特别是扩展字符)

ASCII和扩展ASCII表:

我的一些代码问题示例:

int a = (int) 'a';
int b = (int) '│';

printf("%i\n", a);
printf("%i\n", b);
输出为:

97
14849154

在ASCII表中,”│" 通常为179。

OP'平台正在使用与基本编码集之外的字符串文字有关的实现定义的行为

UTF-8编码。
'│'
是一个Unicode字符

当编码为UTF-8时,它具有3字节序列0xE2 0x94 0x82或大端顺序:0xE29482,即14849154(十进制),由OP打印出来

 int b = (int) '│';

注意:仅为代码0到127定义。

OP'平台正在使用与基本编码集之外的字符串文字有关的实现定义行为

UTF-8编码。
'│'
是一个Unicode字符

当编码为UTF-8时,它具有3字节序列0xE2 0x94 0x82或大端顺序:0xE29482,即14849154(十进制),由OP打印出来

 int b = (int) '│';

注意:仅为代码0到127定义。

FYI,
(int)
是冗余的。
'a'
已经是一个整数。不是一个字符集,所以它不是一个非常有用的术语。FYI,
(int)“a”
是冗余的。
“a”
已经是一个整数。它不是一个字符集,因此不是一个非常有用的术语。是的,但您仍然需要知道源字符集实际上是什么,编译器被告知它是什么(以及编译器被告知使用什么作为执行字符集)。有可能它们都是故意的UTF-8。也有可能实际的源字符集是UTF-8,但编译器被告知的方式不同。总的来说,似乎UTF-8在这个项目中是一个错误。@tom About“实际的源字符集是UTF-8“,可能有用。我想说的是一种编码,而不是。同意,但字符集是各种编译器参数中用于编码的术语。是的,但您仍然需要知道源字符集实际上是什么,编译器被告知它是什么(以及编译器被告知使用什么作为执行字符集)。有可能它们都是故意使用UTF-8的。也有可能实际的源字符集是UTF-8,但编译器被告知的方式不同。总的来说,在这个项目中UTF-8似乎是一个错误。@tom关于“实际源字符集是UTF-8”的说法可能有用。我想说的是一种编码,而不是。同意,但字符集是各种编译器参数中用于编码的术语。