aki 发布于八月 1, 2012 分享 发布于八月 1, 2012 · 只看该作者 {: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") 但是有个问题,日本人有不使用日区的吗?没有!所以就没有几个程序员会去写第二句了。 接下来有解决的方法吗? 找一个字体编辑软件,在中文区强制把字体名改成汉字名,不过这种做法有一定的风险,甚至可能导致系统崩溃。 所以最完美的方法就是转区。 链接到点评
推荐贴