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

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

我遇到过这种情况:我有一个 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。我需要它在我无法控制的系统上运行。

答案1

在我的 Windows 7 上,UTF-16 对我来说是可行的(我的 OEM(“cmd”)代码页是 437,但这无关紧要)。

我如何测试:

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

结果:文本正确显示。

相关内容