复制到剪贴板的 JavaFX 字符串以空字符 '\u0000' 开头被截断

JavaFX String copied to the clipboard is truncated starting with null character '\u0000'

我有一个包含空字符的字符串。当我将它复制到剪贴板并粘贴到记事本时,我只收到空字符之前的行首。是 JavaFX 错误吗?

String data = "begginning\u0000ending";
ClipboardContent content = new ClipboardContent();
content.putString(data);
Clipboard.getSystemClipboard().setContent(content);
// Output will be "beginning"

这可能是对您放入的任何剪贴板系统的限制。很多人在幕后使用 C APIs 并且 C 字符串不能包含空字符,因为 null用作终止符。

的确如此:Windows can't have null characters in the clipboard at all,我怀疑并非只有它有此限制。

所以在这种情况下,您得到的结果是 JavaFX 剪贴板 API 可以希望做到的最好结果。