问题:爪哇脚本(使用Google's Noto Sans Javanese font)渲染和 “组合拳” 正确的HTML,但不在Windows窗体应用程序(C#.NET,Visual Studio的2017)。的Unicode字形不窗体
编辑:我的电脑使用Windows 7,64位。
Noto Sans Javanese direct download link (.zip)
使用的字形
有很多情况表明,字形不正确地进行组合,但这里我用一个例子:
- 爪哇LETTER NA ,U + A9A4,#43428;
- 爪哇曼谷,U + A9C0,#43456;
- JAVANESE LETTER TA,U + A9A0,#43424;
- JAVANESE VELLE SIGN PEPET,U + A9BC,#43452;
Javanese Script Unicode Specification direct download link (.pdf)
正确/预期的行为
这些字形的四个应该是 “组合”,成为一个字符
HTML代码:
<html>
<head>
<meta charset="utf-8">
<style>
.javanese {
font-family: "Noto Sans Javanese";
font-size: 66px;
}
</style>
</head>
<body>
<div class="javanese">ꦤ꧀ꦠꦼ</div>
<div class="javanese">ꦤ꧀ꦠꦼ</div>
</body>
</html>
HTML结果:
Windows窗体(C#.NET)
不正确的渲染,我使用Visual Studio 2017年的社区,创建一个Windows窗体桌面应用。
标签组件正在使用“Noto Sans Javenese”字体。
C#代码:
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.label1.Text = "\uA9A4\uA9C0\uA9A0\uA9BC";
this.label2.Text = "ꦤ꧀ꦠꦼ"; // Copied from HTML
// this one is rendered correctly
// Thai character "ko kai" (U+0E01) and combining characters "mai tho" (U+0E49).
this.label3.Text = "\u0E01\u0E49\u0E49\u0E49\u0E49\u0E49\u0E49\u0E49\u0E49";
}
}
}
C#结果:
问题
- 这种行为的原因是什么?有人可以解释吗?
- 我应该怎样才能使Java脚本在Windows Form Application上正确地“结合”?
非常感谢!
@downvoter:为什么?这不是一个有效的问题吗? – topher
这可能是一个有效的问题,如果它是一些奇怪的渲染怪癖,需要特别照顾,所以我会高兴地祝福它,但它也可能是Windows窗体中的一个简单缺陷。我建议你也把它报告给微软。 – Sander
@Sander谢谢!我只是[MSDN上的一个线程](https://social.msdn.microsoft.com/Forums/en-US/33fb4f0c-36a2-411a-97ba-6c0572badd10/unicode-glyphs-not-combined-properly-on- windows-forms?forum = netfxbcl) – topher