VCU10项目,使用了Noto Sans字体,确实美丽。但考证在win7下,其显现韩文为乱码,很是头痛。
其界面显现如图:
度娘之,得Noto Sans又有CJK字体,望文生义,其为支撑中日韩文,且其体积庞大,不宜做为计划,继承思索!
2、Font.GdiCharSet 属性
也是没有办法,看在现在基础上,能不能处理问题?顺序多国言语需支撑。
就从字体自身属性最先搜检吧,考证发明,改其字符集GdiCharSet,可一般显现韩文,处理计划有了!
查阅材料得知,字体GdiCharSet可有以下值:
字符集 |
值 |
---|---|
ANSI |
0 |
DEFAULT |
1 |
标记 |
2 |
SHIFTJIS 实用 |
128 |
韩语 |
129 |
朝鲜语 |
129 |
GB2312 |
134 |
CHINESEBIG5 实用 |
136 |
OEM |
255 |
韩文 |
130 |
希伯来语 |
177 |
阿拉伯语 |
178 |
希腊语 |
161 |
土耳其语 |
162 |
越南语 |
163 |
泰语 |
222 |
EASTEUROPE |
238 |
俄语 |
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字体支撑韩文的实例教程的细致内容,更多请关注ki4网别的相干文章!