转跳到内容

扫盲字体名称


推荐贴

{:7_509:}经常看到有人说我明明有某某字体为什么还找不到,今天就稍微扫盲下字体名称。

 

绝大多数的Windows的汉子字体有2个名字,一个是英语名,一个是汉子名。这里就拿明朝来说吧。在日语区域下,明朝显示的名字是MS 明朝而在非日语区域下,明朝显示的名字是MS Mincho。(同样知名的例子,宋体和SimSun)然后呢大多数调用字体的函数是根本不知道MS 明朝和MS Mincho是同一个东西

 

 

接下来就写几个调用字体伪代码吧

call(MS 明朝);

这个代码会怎样呢,他直接暴力的调用明朝,而在找不到MS 明朝时候,程序会throw exception。对普通人来说就是——程序崩溃了!

if exist("MS 明朝") call ("MS 明朝");

这个程序稍微好点,先判断是否有MS 明朝,如果有就调用,没有就不调用。接下来如果程序有指定默认字体,那么皆大欢喜,如果没有。对不起,就是常见的打开看不到字体。

 

而完美的实现方法是什么呢?

首先指定默认字体,然后

if exist("MS 明朝") call ("MS 明朝")
else if exist("MS Mincho") call ("MS Mincho")

但是有个问题,日本人有不使用日区的吗?没有!所以就没有几个程序员会去写第二句了。

 

接下来有解决的方法吗?

找一个字体编辑软件,在中文区强制把字体名改成汉字名,不过这种做法有一定的风险,甚至可能导致系统崩溃。

所以最完美的方法就是转区。

链接到点评
游客
此主题已关闭。
×
×
  • 新建...

重要消息

为使您更好地使用该站点,请仔细阅读以下内容: 使用条款