【发布时间】:2013-10-07 16:06:02
【问题描述】:
我尝试设置一些 JTextComponent 小部件(主要是 JTextField 组件)以输入 Unicode 文本。在此,我需要渲染僧伽罗语字符。我在我的所有
中设置了 Iskoola Pota 字体
这在大多数情况下都可以正常工作,但在某些时候会失败。
具有一个或两个字符的字符可以正确呈现。
Ex: අම්මා, වයඹ, අධිකාරිය
但问题在于 3 个字符的字符。
Ex: ප්රවෘත්ති (THIS IS RENDERED AS ප්රවෘත්ති)
ව්යාපෘතිය (THIS IS RENDERED AS ව්යාපෘතිය)
问题是ප්ර is rendered as (ප්ර) 和ව්යා is rendered as (ව්යා) 等字符。
截图如下。
图片在这里:http://i.stack.imgur.com/bQrQB.png 在这里,අම්මා、වයඹ、අධිකාරිය正确呈现,但ප්රවෘත්ති和ව්යාපෘතිය单词呈现错误。
我也更新了我的 JDK 版本和 JRE。这是 NetBeans IDE 中显示的版本详细信息。
Java: 1.7.0_40; Java HotSpot(TM) Client VM 24.0-b56
Runtime: Java(TM) SE Runtime Environment 1.7.0_40-b43
System: Windows 7 version 6.1 running on x86; Cp1252; en_US (nb)
我无法理解如何在我的程序中实现补充字符和代理对 API jsr204。非常感谢任何形式的帮助。
提前谢谢你。
【问题讨论】:
-
你们中没有一个字符使用代理,与补充字符无关。 Unicode 僧伽罗语范围是 U+0D80 – U+0DFF。显然问题是缺少 U+200D(零宽度连接器)。
-
尊敬的先生,您能指导我如何以编程方式执行此操作吗?如果我手动注入了 ZERO WIDTH JOINER,它会在 JTextField 中正确呈现吗?或者我应该为特定的 JTextField 实现自定义文档或文本渲染器吗?请在这个问题上帮助我,我非常感谢你的帮助。提前致谢。
-
Machan mekata mokda kare?