c#: Noto Sans字体如何支持韩文
1、源起:
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 |
字符集 值 ANSI
默认值
SYMBOL
SHIFTJIS
HANGEUL
朝鲜文
GB2312
CHINESEBIG5
OEM
JOHAB
希伯来语
阿拉伯语
希腊字符
土耳其语
越南语
泰语
东欧
俄语
MAC 7
波罗的海字符
-->
验证比如东欧、波罗的海等字符集,可以正常显示韩文,而不影响其默认字符集显示效果,于是,决定替换其字符集。
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, );
ctrl.Font = font;
}
}
4、效果
OK,难题解决,非常完美:

c#: Noto Sans字体如何支持韩文的更多相关文章
- 【开发工具】- 设置Sublime支持韩文展示
菜单栏 --> 首选项 --> 设置 -->User 添加以下代码 { "font_size": 12, "show_encoding":tr ...
- 让 sphinx 支持中文、日文和韩文
在国内搜索 sphinx 的话找到的资源好像都是挺久远的,无奈之下只好跑到国外去找了.听起来有点不可思议,但是最近整 sphinx 的时候突然想到 mediawiki 官方有 sphinx 的安装介绍 ...
- Android 2.3 不支持印度文
Android 2.3 不支持印度文(hindi),即使你指定了相关的字符串也不行,它们一律显示为方格. 实际上,你在系统的语言设置界面也可以看到,印度文一行也是被显示为方格(既然是方格,如何知道它是 ...
- 关闭WordPress自动加载的Open Sans字体-WP访问过慢原因
序言 wordpress大概从wp-3.8开始会自动加载Open Sans字体,并引用Google上面的CSS样式.而最近谷歌经常打不开,导致网站访问速度过慢,严重的会拖慢几十秒.Open Sans字 ...
- centos6编译安装zabbix3.0和中文支持整理文档
编者按: 最近公司部分业务迁移机房,为了更方便的监控管理主机资源,决定上线zabbix监控平台.运维人员使用2.4版本的进行部署,个人在业余时间尝鲜,使用zabbix3.0进行部署,整理文档如下,仅供 ...
- MathType中怎么编辑韩文字符
用MathType编辑公式,所涉及到符号与字母一般都是英文字母与数字,或者使用希腊字母,当然还有很多使用中文的情况.但是不仅如此,我们在使用MathType时,除了这些字符之外,还可以输入韩文或者日文 ...
- C#使用正则表达式检测数字 char 和韩文
if (!System.Text.RegularExpressions.Regex.IsMatch(strRoleName[i].ToString(), @"^[\uac00-\ud7ff] ...
- Open Sans字体兼容问题解决办法[font-face]
参考:http://www.tantengvip.com/2014/11/open-sans/ 1.font-face使用方法 font-face是CSS3中的一个模块,主要是把自定义的Web字体嵌入 ...
- WordPress 后台禁用Google Open Sans字体,加速网站
解决方法很简单,安装启用 Disable Google Fonts 或者 Remove Open Sans font Link from WP core 其中之一即可.或者如果你没有使用WP自带的官方 ...
随机推荐
- 爬虫--Scrapy-持久化存储操作2
1.管道的高级操作 将爬取到的数据值分别存储到本地磁盘.redis数据库.mysql数据. 需求:将爬取到的数据值分别存储到本地磁盘.redis数据库.mysql数据. 1.需要在管道文件中编写对应平 ...
- 转:jquery操作元素的css样式(获取、修改等等)
//1.获取和设置样式 $("#tow").attr("class")获取ID为tow的class属性 $("#two").attr(&qu ...
- openvas开放式漏洞评估系统
OpenVAS是开放式漏洞评估系统,也可以说它是一个包含着相关工具的网络扫描器.其核心部件是一个服务器,包括一套网络漏洞测试程序,可以检测远程系统和应用程序中的安全问题. 用户需要一种自动测试的方法, ...
- 安装vue CLI后, 出现安装权限问题
问题:安装vue CLI后,出现:npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/usr/l ...
- 重新装kafka
Linux搭建kafka 一.安装Java 1.查看linux 的系统版本 root@aliyun:~# uname --m x86_64 2.安装java mkdir -p /usr/local ...
- 弹性盒子 flexbox 元素居中
1 .navtext{ width:800px; height:600px; border: 1px solid black; justify-content:center; align-items: ...
- maven(二)基于intellij idea搭建ssm的maven项目结构
项目配置文件整合步骤 1.这里使用maven来引入项目所需要的jar包,所以也就不需要手动来管理jar包了. pom.xml 配置模板如下: <project xmlns="http: ...
- SpringMVC Shiro与filterChainDefinitions
SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能. 第一步:配置web.xml <!-- 配置Shiro过滤器,先让Shiro ...
- spring 事务传播
1.spring实现对事务的控制,使用的是代理的技术.通过生成的代理类来捕捉被代理类(也就是我们编写的类)的异常,决定事务的提交或回滚.从某一角度来说,spring事务是基于异常实现的.对于实现了接口 ...
- 解题4(NumberToEnglish )
题目描述 Jessi初学英语,为了快速读出一串数字,编写程序将数字转换成英文: 如22:twenty two,123:one hundred and twenty three. 说明: 数字为正整数, ...