Java Swing-JTextfield/JTextArea无法粘贴补充的Unicode字符 [英] Java Swing - JTextField/JTextArea unable to paste supplemental unicode characters

查看:0
本文介绍了Java Swing-JTextfield/JTextArea无法粘贴补充的Unicode字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经对Stackoverflow和Google进行了详尽的搜索,但到目前为止还找不到其他有类似问题的人。

在一个样例Java Swing测试程序中,我创建了一个普通的JTextfield,以便尝试从网页(http://isthisthingon.org/unicode/).)将字符粘贴到其中当我用‘㓿’(代码点13567)测试时,它能够粘贴字符。此字符是中日韩表意文字扩展A平面中列出的最后一个字符。然而,当我移动到下一个相关的平面,中日韩表意文字扩展B,尝试复制和粘贴字符‘𠀀’(代码点131072)失败。它没有呈现方框或任何类型的字形,它看起来就像我在系统剪贴板中什么都没有一样。

我意识到CJK表意文字扩展B是一组被认为是"补充"的字符,当Java在内部将它们编码为UTF-16时,需要两个16位块而不是一个。进一步的测试证明,如果我将文本硬编码到显示区域中,我能够显示补充字符。

这是使用Windows 7和Java 6测试的。

我知道从Java 5开始,添加了对补充Unicode字符的支持,但是,我想知道为什么(或者是否)Swing中的剪切和粘贴功能仍然不允许我粘贴这些字符。在使用JTextField类或JTextArea类时,我是否还需要做些什么来告诉Java处理这些字符?有没有办法让Java的Swing库能够将这些字符粘贴到文本字段中?

感谢您抽出时间!

推荐答案

我刚发了这个帖子,我可能就找到了答案。这是一个long standing bug in the JDK

这篇关于Java Swing-JTextfield/JTextArea无法粘贴补充的Unicode字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆