仅从剪贴板获取可读文本

cla*_*amp 47 java clipboard

我已经知道如何从Java中的剪贴板中获取纯文本,但有时文本编码有些奇怪DataFlavor,比如从Microsoft Word或网站复制甚至是Eclipse的源代码.

如何从这些DataFlavors中提取纯文本?

小智 56

import java.awt.HeadlessException;
import java.awt.Toolkit;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;

String data = (String) Toolkit.getDefaultToolkit()
                .getSystemClipboard().getData(DataFlavor.stringFlavor); 
Run Code Online (Sandbox Code Playgroud)

使用getData()方法和stringFlavor,您应该从剪贴板中获取纯文本.

如果剪贴板中有奇怪的文本,我想,这应该是将数据放入剪贴板的程序问题.

  • 警告:使用上面的代码,您可以点击这个已知的Java Bug http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6606476(正如我所做的那样)并且没有解决方法.幸运的是我安装了Perl,因此我可以调用Perl脚本将剪贴板内容设置为纯文本.:( (2认同)