Строка JavaFX, скопированная в буфер обмена, усекается, начиная с нулевого символа '\ u0000' - PullRequest
0 голосов
/ 08 октября 2019

У меня есть строка с нулевыми символами. Когда я копирую его в буфер обмена и вставляю в блокнот, я получаю только начало строки перед нулевым символом. Это ошибка JavaFX?

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

1 Ответ

2 голосов
/ 08 октября 2019

Это, вероятно, ограничение для любой системы буфера обмена, в которую вы ее помещаете. Многие из них используют API-интерфейсы C под капотом, а строка C не может содержать нулевой символ, поскольку в качестве терминатора используется ноль.

И действительно: Windows вообще не может содержать нулевые символы в буфере обмена , и я подозреваю, что это ограничение не единственное.

Так что в этом случае результатВы получили лучшее из того, что API JavaFX Clipboard может надеяться сделать.

...