gpt4 book ai didi

java - 如何使用java将日语编码文本(Unicode类型除外)复制到剪贴板?

转载 作者:行者123 更新时间:2023-12-01 05:16:37 25 4
gpt4 key购买 nike

所以,我编写了一个程序,可以成功地从剪贴板捕获文本并通过 Java 中的 System.out.println 打印它。然后,我想将修改后的文本复制到剪贴板。这是该代码的片段:

                 StringSelection ss = new StringSelection(result);                        
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);

结果是修改后的字符串,当我将结果变量打印到控制台时,它仍然可读。但是,剪贴板上复制的文本似乎与原始文本具有不同的编码,并且显示了不可读的字符。

我能做些什么来克服这个问题吗?非常感谢您的回答,谢谢:)

编辑:抱歉,事实证明,当复制到任何 Windows 程序(如便签、word 等)时,文本可读性都很好。但是当我将其复制到 Atlas Translator 时,它似乎无法读取 Unicode 编码流,我怀疑这一点java中的默认编码。

所以,我修改后的问题是:如何转换 stringselection 使其具有日语编码,但不是 Unicode?任何答案都非常感谢,谢谢! :)

最佳答案

试试这个程序,会解决你的问题

public class UTFDemo {

public static void main(String s[]) {
//String message = "Езикова";
String message = "LiuYan 刘研";
System.out.println("Original Message : " + message);
StringSelection ss = new StringSelection(message);
Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
cb.setContents(ss, null);

String result = getClipboardContents();
System.out.println("Result : " + result);
}

public static String getClipboardContents() {
String result = "";
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
//odd: the Object param of getContents is not currently used
Transferable contents = clipboard.getContents(null);
boolean hasTransferableText =
(contents != null)
&& contents.isDataFlavorSupported(DataFlavor.stringFlavor);
if (hasTransferableText) {
try {
result = (String) contents.getTransferData(DataFlavor.stringFlavor);
} catch (UnsupportedFlavorException ex) {
//highly unlikely since we are using a standard DataFlavor
System.out.println(ex);
ex.printStackTrace();
} catch (IOException ex) {
System.out.println(ex);
ex.printStackTrace();
}
}
return result;
}

关于java - 如何使用java将日语编码文本(Unicode类型除外)复制到剪贴板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11112442/

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