我使用 cvs2svn 工具将我的 CVS 数据库转换为 SVN,但我所有的 unicode 文本文件都已更改为 UFT-8,我不希望这样。
我怎样才能避免这种情况?是否有标志或参数来保存我的 Unicode 文件?
我假设您错误地称为 Unicode 的是 UTF-16LE。cvs2svn 中有一个选项,它在文档中:
--encoding=ENC
使用 ENC 作为 CVS 存储库中文件名、日志消息和作者姓名的编码。(通过使用 --options 文件,可以指定一组编码用于文件名,另一组用于日志消息和作者姓名。)可以多次指定此选项,在这种情况下,将尝试使用编码订购直到成功。默认值:ASCII。其他可能的值包括标准 Python 编码。
所以你可以尝试传递--encoding=utf_16_le
到命令行。
Windows 的编码(误导性地)称为“Unicode”是 UTF-16LE。这是一个麻烦的编码,因为它不兼容 ASCII;Windows 采用它是因为当时(在 UTF-8 发明之前)它被认为是 Unicode 文本最常见的编码。今天,UTF-8 绝对是文件内 Unicode 存储的首选编码。
虽然 dda 的答案可能有效(+1),但 Subversion 不支持将 UTF-16 文件作为文本处理 - 它们将作为二进制文件处理,这意味着您将无法获得可用的 diff/patch/merge。出于这个原因,我强烈建议让 cvs2svn 继续并将文件更改为 UTF-8。