首页 > 解决方案 > 计算机的字符编码

问题描述

“字符文字可以隐式转换为其在 C++ 程序所在机器的字符集中的整数值”——来自 Bjarne Stroustrup 的“C++ 编程语言”一书。第四版第 143 页

物理机怎么会有自己的字符编码方案?我认为由软件来强制执行给定的编码方案,然后计算机的物理特性将其视为原始字节。有人可以解释他所说的“机器的字符集”是什么意思吗?

第 144 页继续说“对字符使用任何数字符号会使程序在具有不同字符集的机器之间不可移植”。

标签: character-encodingoperating-systemcompiler-constructioninstruction-set

解决方案


在某些时候,像键盘这样的“物理机器”需要在二进制代码和人类可读字符之间建立内置对应关系。当 I/O 设备更加物理时,这种对应更加具体,但它肯定仍然存在。除此之外,操作系统通常会强加这种对应关系以实现互操作性;您是否认为操作系统是“机器”的一部分是一个没有明确答案的语义问题,但就 C++ 等语言标准而言,托管实现的“执行环境”包括键盘、显示器、持久存储,以及将它们联系在一起的操作系统粘合剂。


推荐阅读