编码和字体有什么不同

What is different between encoding and font

编码是为字符或符号赋予唯一值的映射。

如果一个字符不在编码中,无论您使用什么字体,它都不会显示正确的字体 像 Lucida console、arial 或 terminal

但问题是终端字体显示画线字符而其他字体不显示画线字符

我的问题是为什么终端的行为与其他字体不同

请注意 Windows 7 语言环境英语

对于不耐烦的人,相关的link在这个答案的底部。

Encoding is maping that gives characters or symbols a unique value.

不,那是字符集的细节,它将某些字符映射到代码点(使用 Unicode 术语)。让我们暂时忽略上面的内容。

If a character is not present in encoding no matter what font you use it won't display correct fonts Like Lucida console, arial or terminal

字体格式将 Unicode 代码点映射到字形。并非所有代码点都可以映射到特定字体——必须有人创建所有这些符号。同样,让我们​​忽略它。

并非所有二进制编码都可以映射到特定字符集中的代码点;这可能是你的意思。

But problem is terminal font is showing line draw characters but other font is not showing line draw characters

您的终端似乎在不同的字符集上运行,可能是 "OEM" 或 "IBM PC" 字符集,而不是 Unicode 兼容字符集或 Windows-1252 / ISO 8859- 1 / 拉丁语。

如果是后者,那你就不走运了,除非你可以将你的输出终端设置为另一个字符集,因为 Windows-1252 根本不支持方框绘图字符。

解决方案:

  • 如果可能,尝试将输出设置为 OEM/IBM PC 字符集。

  • 如果是 Unicode,您可以尝试将输出转换为 Unicode:使用 OEM 字符集读入(解码),然后使用 box drawing subset 重新编码。