在Windows下使用CLIP.EXE将UTF-8编码的文件放在剪贴板上?

Tho*_*sen 5 windows clipboard unicode

我遇到过这样的情况:我有一个 Java 程序,它首先写入一个文本文件,然后调用“CMD /C CLIP < textfile”,以便能够将任意大的文件放在 Windows 剪贴板上。效果很好。

现在我发现存在编码问题,因此我确保拥有有效的 UTF-8 编码文件(包括 BOM,并且可以在 vim 中正确打开),但 CLIP.EXE 似乎不支持更改 BOM预期编码为 UTF-8。

那么,我应该如何告诉 Windows 和/或 CLIP.EXE 该文件是 UTF-8 编码的并相应地处理它?(如果 UTF-16 或 UTF-32 等其他编码更适合 Unicode,我可以使用它)。

显示该行为的系统是 Windows 7,CMD.EXE 中的默认代码页是 850。我需要它在我无法控制的系统上工作。

Jon*_*han 5

UTF-16 在我的 Windows 7 上适用于我(我的 OEM ('cmd') 代码页是 437,尽管这并不重要)。

我是如何测试的:

  1. 打开记事本,输入一些非 ASCII 文本(或从某些具有多种语言的网站复制,例如http://wikipedia.org
  2. 另存为,选择编码:Unicode(即UTF-16),另存为UTF16.txt
  3. 在cmd中输入clip < UTF16.txt
  4. 打开新记事本,粘贴

结果:文本正确显示。