我正在处理一些我想在浏览器中显示的梵文文本数据。不幸的是,没有间隔的组合字符的一种组合不会呈现为探针组合字符。
每当将基本字符与 Devanagari重音符号Udatta ॑ (U+0951)
和 Devanagari重音Visarga ः (U+0903)
结合使用时,就会发生此问题。 / p>
一个示例是र॑ः
,它是र (U+0930)
+ ॑
+ ः
,应呈现为一个字符。但是,压力信号和另一个压力信号似乎彼此不喜欢(如您在上面看到的一样!)。
只需将基本字符与其他两个符号结合起来,顺便说一句:र॑
/ रः
我已经尝试使用几种字体,这些字体应该能够呈现梵文字符(某些Noto字体,Siddhanta,GentiumPlus),并在不同的浏览器中进行了测试,但是问题似乎出在其他方面。
有人有想法吗?这不是符号的有效组合吗?
编辑:我只是试图在两个标记之间切换,以查看是否-它呈现为रः॑
,所以U+0951
和U+0903
似乎没有相同的功能,因为压力符号会显示在其他标记的上方。
看来我还不太了解Unicode。
答案 0 :(得分:-1)
这不是解决您问题的方法,但可能是有用的信息:
我正在处理一些梵文文本数据,我想在其中显示 浏览器。
像您一样,尽管尝试了多种字体,包括 Arial Unicode MS
,但我无法在任何浏览器中使用它:浏览器只是在JSP的Devanagari Test: रः॑
中呈现文本<body>
。应力符号明显出现在 Sign Visarga 的上方,而不是基本字符。
这不是符号的有效组合吗?
这是有效的组合。我不知道Devanagari,所以我不知道它在语义上是否“有效”,但是从Java应用程序中准确生成所需的字符很简单:
System.out.println("Devanagari test: \u0930\u0903\u0951");
这是执行println()
调用后的输出,在基本字符上方显示了压力符号:
上面的屏幕截图来自Windows 10上的NetBeans 8.2,但是使用最新版本的Eclipse和Intellij IDEA,渲染效果也很好。约束是:
println()
中按此顺序指定三个字符,才能进行渲染。有人有主意吗?
不幸的是,尽管很明显:
有关更多信息,请参见Why are some combining diacritics shifted to the right in some programs?。