字符如何转换为写入文本文件的字节?stdout编码实现疑问
关于C程序字符输出的编码匹配疑问
看这段C程序:
#include <stdio.h> int main ( void ) { putchar ( '^' ) ; return 0 ; }
我期望控制台输出^,但编译器怎么知道要向关联stdout的文件发送什么样的比特模式?编译器显然没法预知我会用什么终端或终端模拟器,还有代码页、字体这些编译时根本获取不到的运行时信息。
从目前的讨论来看,指定并实现执行字符集是编译器用户和编译器共同的责任。比如GCC的-fexec-charset选项就会依赖系统的iconv库例程来处理编码转换。而使用兼容的终端、匹配的终端编码设置和字体来运行程序,则是用户(或IT管理员)的责任。
我是不是漏掉了什么?是不是只有明确编译器、终端这些具体信息,才能给出完整的答案?
内容的提问来源于stack exchange,提问作者Ana Nimbus
相关产品推荐
相关产品推荐

