繁体   English   中英

Windows上的Unicode更改控制台字体

[英]Unicode on Windows Changing the console font

我将Unicode字符输出到Windows上的控制台,并且当我手动将字体更改为Lucidia Grande时,输出符合预期。 但是我的问题是,Python,Ruby等如何使用默认字体将Unicode字符输出到Windows控制台? 我以为默认字体不支持所有unicode字符?

Python,Ruby等如何使用默认字体将Unicode字符输出到Windows控制台?

它们不能也不会显示所有Unicode字符。 默认的控制台字体(也称为“光栅字体”)映射到带有您所在区域的DOS代码页中字符的.fon符号的.fon文件。 对于西欧安装, 代码页为850 您在此代码页中确实得到了带重音符号的字母和其他非ASCII字符,但是来自更宽Unicode的其他任何内容都将显示为?

实际上,即使您更改为矢量字体,运行运行使用标准库I / O函数的MS C运行时实现(Python和Ruby都执行)的程序时,您仍将限于单个代码页。 您可以选择使用chcp来更改代码页的范围,这比“光栅字体”所支持的更多,但是您仍然不能以这种方式获得全部Unicode。

(原则上,您应该能够使用chcp 65001来获取UTF-8,但是Windows实现中存在严重的错误,通常使其无法使用。或者对于utf-16而言是chcp 65000 ,但是由于它不是ASCII超集,因此容易出错破坏包括Python / Java等在内的stdio应用)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM