gpt4 book ai didi

Java Swing - JTextField/JTextArea 无法粘贴补充的 unicode 字符

转载 作者:搜寻专家 更新时间:2023-10-31 20:30:31 25 4
gpt4 key购买 nike

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

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

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

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

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

感谢您的宝贵时间!

最佳答案

我一发布这个,我可能就找到了我的答案。这是一个long standing bug in the JDK .

关于Java Swing - JTextField/JTextArea 无法粘贴补充的 unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7028598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com