Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Swing-JTextField/JTextArea无法粘贴补充unicode字符_Java_Unicode_Paste_Utf 16 - Fatal编程技术网

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

Java Swing-JTextField/JTextArea无法粘贴补充unicode字符,java,unicode,paste,utf-16,Java,Unicode,Paste,Utf 16,我已经对stackoverflow和Google进行了详尽的搜索,但到目前为止,我还没有找到其他有类似问题的人 在一个示例Java Swing测试程序中,我创建了一个普通的JTextField,以便尝试将字符从网页粘贴到其中(http://isthisthingon.org/unicode/). 当我用'㓿' (代码点13567)它能够粘贴字符。此字符是CJK表意文字扩展A平面中最后列出的字符。然而,当我移动到下一个相关平面,即CJK表意文字扩展B,试图复制并粘贴字符“”时,我可能已经找到了答

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


在一个示例Java Swing测试程序中,我创建了一个普通的JTextField,以便尝试将字符从网页粘贴到其中(http://isthisthingon.org/unicode/). 当我用'㓿' (代码点13567)它能够粘贴字符。此字符是CJK表意文字扩展A平面中最后列出的字符。然而,当我移动到下一个相关平面,即CJK表意文字扩展B,试图复制并粘贴字符“”时,我可能已经找到了答案。这是一个很好的例子

我刚发布这篇文章,就可能找到了答案。这是JDK-中一个长期存在的错误。Unicode在其生命周期的大部分时间里,其字符数超过了16位整数的数量!我真不敢相信Java还在搞砸这件事。但是昨天我在Java字符串类中发现了另一个UCS-2错误,这个错误已经存在了很久了。这太荒谬了。整个UTF-16是一个可怕的诅咒,Java永远不会摆脱它所导致的无数错误。他们简直无处不在,令人抓狂。人们就是做不好。谢谢阿列克西!刚刚创建了一个答案。:)@tchrist-在String类中发现的bug是什么?如果它是作为官方错误提交的,你也可以发布链接吗?我在工作中已经做了很多关于i18n的工作,我对Java关于补充字符集的怪癖了解得越多越好@Locriansax:不,我没有bug报告,我把它邮寄到我所在的i18n dev openjdk列表中。你可以找到。问题是代码通过部分代码点而不是完整代码点来处理事情,因此会得到错误的答案。直到Unicode 3.1在2001年3月出现,它才悄然出现,因为它引入了Deseret脚本,这是一个在星体层上改变情况的脚本。它已经被打破超过10年了。我认为所有基于字符的Java代码都非常可疑,直到被证明无罪为止。安全的假设。