如何根据语言检测要使用的正确字体

发布于 2024-12-08 04:44:35 字数 330 浏览 1 评论 0原文

对于我的一个程序,我有一个数据库,其中包含 unicode 格式的街道名称(使用 GIS 内容)。用户选择他想看到的世界任何地方(使用openstreetmap、谷歌地图或其他什么),我的程序使用漂亮的字体显示所选的每条街道以显示它们的名称。正如您可能知道的那样,并非每种字体都可以显示非拉丁字符......这让我很头疼。我想知道如何告诉我的程序“如果这个词是用中文写的,那么使用中文字体”。

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

For a program of mine I have a database full of street name (using GIS stuff) in unicode. The user selects any part of the world he wants to see (using openstreetmap, google maps or whatever) and my program displays every streets selected using a nice font to show their names. As you may know not every font can display non latin characters... and it gives me headaches. I wonder how to tell my program "if this word is written in chinese, then use a chinese font".

EDIT: I forgot to mention that I want to use non-standard fonts. Arial, Courier and some other can display non-latin words, but I want to use other fonts (I have a specific font for chinese, another one for japanese, another one for arabic...). I just have to know what font to chose depending of the word I want to write.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

行至春深 2024-12-15 04:44:36

您需要有关文本语言的信息。
当您决定想要什么字体时,您就可以进行从语言到字体的映射。

如果您尝试自动执行此操作,则不会起作用。即使对于相同的字符,日语、繁体中文和简体中文的字体看起来也不同。它们可能是可以理解的,但是本地人可以告诉(好吧,抱怨)字体是错误的。

另外,如果你用算法做任何事情,就没有办法考虑审美部分(例如你不喜欢 Arial :-)

You need information about the language of the text.
And when you decide what fonts you want, you do a mapping from language to font.

If you try to do it automatically, it does not work. The fonts for Japanese, Chinese Traditional, and Chinese Simplified look differently even for the same character. They might be inteligible, but a native would be able to tell (ok, complain) that the font is wrong.

Plus, if you do anything algorithmically, there is no way to consider the estethic part (for instance the fact that you don't like Arial :-)

软的没边 2024-12-15 04:44:36

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

Use utf-8 text and a font that has glyphs for every possible character defined, like Arial/Verdana in Windows. That bypasses the entire detection problem. One font will handle everything.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文