Character encoding 为什么CP850是Windows10终端的默认编码?

Character encoding 为什么CP850是Windows10终端的默认编码?,character-encoding,Character Encoding,我正在开发一个Ruby程序,我最终发现问题是由Windows10终端中的默认编码引起的,显然是CP850,这种编码太旧了,甚至不包括欧元符号。我读到,当然,如果我试图改变这一点,计算机周围的其他程序将出现问题 维基百科指出,从理论上讲,CP850已被Windows-1252和后来的Unicode“很大程度上取代”,但它就在这里,就在操作系统的终端上 附上照片作为证据。它是意大利语的,但你会在“Tabella codici corrente”下看到它,也就是“当前代码表” 怎么可能呢 这是历史性的

我正在开发一个Ruby程序,我最终发现问题是由Windows10终端中的默认编码引起的,显然是CP850,这种编码太旧了,甚至不包括欧元符号。我读到,当然,如果我试图改变这一点,计算机周围的其他程序将出现问题

维基百科指出,从理论上讲,CP850已被Windows-1252和后来的Unicode“很大程度上取代”,但它就在这里,就在操作系统的终端上

附上照片作为证据。它是意大利语的,但你会在“Tabella codici corrente”下看到它,也就是“当前代码表”

怎么可能呢

这是历史性的

DOS的标准代码页是cp437,后来是cp850(例如还有cp852)

Windows中的终端也被称为“DOS提示符”:这是在Windows中运行DOS程序的一种方式,因此它们保留DOS的代码页。Microsoft不喜欢不向后兼容的更改,因此您的DOS程序也应该可以在Windows终端上正常工作


顾名思义,Windows-1252是为Windows设计的,因此没有兼容性问题,Windows程序也是如此,但为了获得图形界面市场,同时保持与许多商业应用程序的兼容性,Microsoft维护了两个不同的代码页。

这是否回答了您的问题?实际上,我对CP850仍然存在的历史原因更感兴趣。