首頁  >  文章  >  後端開發  >  c#中Noto Sans字體支援韓文的實例教程

c#中Noto Sans字體支援韓文的實例教程

零下一度
零下一度原創
2017-06-23 14:53:042294瀏覽

1、源起:

VCU10項目,使用了Noto Sans字體,的確漂亮。但驗證在win7下,其顯示韓文為亂碼,頗為頭痛。

其介面顯示如圖:

度娘之,得Noto Sans又有CJK字體,顧名思義,其為支持中日韓文,且其體積巨大,不宜做為方案,繼續思考!

 

2、Font.GdiCharSet 屬性

也是沒有辦法,看在目前基礎上,能不能解決問題?程式多國語言需支援。

就從字體本身屬性開始檢查吧,驗證發現,改其字元集GdiCharSet,可正常顯示韓文,解決方案有了!

查閱資料得知,字體GdiCharSet可有以下值:

#2SHIFTJIS 適用#128##希臘文#161土耳其語162162163222238

字元集

ANSI

0

DEFAULT

1

##韓文

129

##朝鮮語言

129

GB2312

#134

#CHINESEBIG5 適用

##136

#OEM

##OEM

255

韓文

130

希伯來文

#177

阿拉伯文

#178

越南語

#EASTEUROPE

#俄語

##204

#MAC#################77 #########################波羅的字##################186### ##################驗證例如東歐、波羅的海等字元集,可以正常顯示韓文,而不影響其預設字元集顯示效果,於是,決定取代其字元集。 ###### #########3、替換#########專案介面已設定字體,且介面眾多,一個一個改當然不夠方便,寫程式碼批次處理吧! ######在每個窗體,或每個UserControl中,呼叫一下UpdateNotoSansCharset()數,就統一替換了。 ######
        //处理Label字体,以能在win7下,NotoSans字体能显示韩文public static void UpdateNotoSansCharset(Form form)
        {if (OSUtils.OSVersion > FriendlyOSVersion.Win7)return;foreach (Control ctrl in form.Controls)
                UpdateNotoSansCharset(ctrl);
        }public static void UpdateNotoSansCharset(ScrollableControl parent)
        {if (OSUtils.OSVersion > FriendlyOSVersion.Win7)return;foreach (Control ctrl in parent.Controls)
                UpdateNotoSansCharset(ctrl);
        }public static void UpdateNotoSansCharset(GControl ctrl)
        {if (ctrl is ScrollableControl)
                UpdateNotoSansCharset(ctrl as ScrollableControl);else if (ctrl is Label)
            {//CharSet采用中欧字符集var font = new Font(ctrl.Font.FontFamily, ctrl.Font.Size, ctrl.Font.Style, ctrl.Font.Unit, 238);
                ctrl.Font = font;
            }
        }
###### ###### ###4、效果#########OK,難題解決,非常完美:######## ####

以上是c#中Noto Sans字體支援韓文的實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn