假设我编写了以下C程序并将其保存在名为Hello.c的文本文件中
#include<stdio.h>
int main()
{
printf("Hello there");
return 0;
}
Hello.c
文件可能会以UTF8编码格式保存。
现在,我编译此文件以创建名为Hello
现在,这个二进制文件应该以某种方式存储文本“Hello there
”。问题是使用什么编码来存储此文本?
答案 0 :(得分:1)
据我所知,vanilla C没有任何编码概念,但如果你正确地跟踪多字节字符,你可以使用编码。默认情况下,ASCII用于将字符映射到单字节字符。
您对可执行文件中存储的字符串“Hello there”是正确的。字符串文字放入全局内存中,并在调用printf时用指针替换,因此您可以在二进制文件的数据段中看到字符串文字。
如果您有权访问十六进制编辑器,请尝试编译程序并在编辑器中打开二进制文件。 Here是我执行此操作时的屏幕截图。您可以看到字符串文字的每个字符由单个字节表示,后跟0(NULL)。这是ASCII。