编码是为字符或符号赋予唯一值的映射。
如果编码中不存在某个字符,无论您使用什么字体,都不会显示正确的字体 像 Lucida 控制台、arial 或终端
但问题是终端字体显示画线字符,但其他字体不显示画线字符
我的问题是为什么终端的行为与其他字体不同
请注意 Windows 7的 语言环境 英语
对于不耐烦的人,相关链接位于此答案的底部。
编码是为字符或符号赋予唯一值的映射。
不,这是字符集的细节,它将某些字符映射到代码点(使用 Unicode 术语)。现在让我们忽略上面的内容。
如果编码中不存在某个字符,无论您使用什么字体,都不会显示正确的字体,例如 Lucida 控制台、arial 或终端
字体格式将 Unicode 代码点映射到字形。并非所有代码点都可以映射为特定字体 - 必须有人创建所有这些符号。再次,让我们忽略这一点。
并非所有二进制编码都可以映射到特定字符集中的代码点;这可能就是你的意思。
但问题是终端字体显示画线字符,但其他字体不显示画线字符
您的终端似乎在不同的字符集上运行,可能是“OEM”或“IBM PC”字符集,而不是兼容 Unicode 的字符集或 Windows-1252 / ISO 8859-1 / Latin。
如果是后者,那么你就不走运了,除非你可以将输出终端设置为另一个字符集,因为 Windows-1252 根本不支持方框绘制字符。
解决方案:
如果可能,尝试将输出设置为 OEM / IBM PC 字符集。
如果是 Unicode,您可以尝试将输出转换为 Unicode:使用 OEM 字符集读入(解码),然后使用 box 绘图子集重新编码。