如何检测正确的字体使用取决于语言

如何检测正确的字体使用取决于语言

问题描述:

对于我的程序我有一个数据库充满街道名称(使用GIS的东西)在Unicode。用户选择他想看到的世界任何地方(使用openstreetmap,谷歌地图或其他),我的程序显示每个选定的街道使用一个很好的字体显示他们的名字。正如你可能知道不是每一种字体都可以显示非拉丁字符......这让我很头疼。我想知道如何告诉我的程序“如果这个单词是用中文写的,那么用中文字体”。如何检测正确的字体使用取决于语言

编辑:我忘了提及我想使用非标准字体。 Arial,Courier和其他一些可以显示非拉丁文字,但我想用其他字体(我有一个特定的字体为中文,另一个为日文,另一个为阿拉伯文...)。我只需要知道什么字体选择取决于我想写的字。

您需要有关文本语言的信息。 当你决定你想要的字体时,你需要做一个从语言到字体的映射。

如果您尝试自动执行此操作,则不起作用。即使对于相同的字符,日文,繁体中文和简体中文的字体也会有所不同。他们可能是理智的,但本地人可以告诉(确定,抱怨)该字体是错误的。

另外,如果你做任何事情算法,是没有办法考虑estethic部分(如事实,你为这个快速回答不喜欢宋体:-)

+0

Arial不是那么糟...... :)谢谢你的回答。 – lvictorino

使用utf-8文本和字体为每个可能的字符定义了字形,如Windows中的Arial/Verdana。这绕过了整个检测问题。一种字体将处理一切。

+0

谢谢...我忘了提到我想要显示非标准字体。我的作品有点“艺术性”,我想用特定的美丽字体。让我编辑我的帖子。 – lvictorino

+1

什么? Arial不漂亮吗?请稍候,一些MS goons将很快通过使用备用MS Bob CD来纠正您的观点。 –

+2

何!不,不......这是我,我有不好的口味。在考虑你的评论之后,似乎很明显Arial对于任何印刷项目都是足够的。我会立即重写我的程序以仅显示Arial。非常感谢你(感谢MS创建了这么漂亮的字体)。 :D – lvictorino