2013-06-05 29 views
1

我用cvs2svn工具将我的CVS数据库转换为SVN,但是我所有的unicode文本文件都被更改为UFT-8,我不想那样做。如何不使用cvs2svn将Unicode文本文件转换为UTF-8?

我该如何避免这种情况?是否有一个标志或参数来保存我的Unicode文件?

+1

你意识到Unicode不是一种编码,而且UTF-8是Unicode的一部分? – dda

回答

2

我认为你错误地称为Unicode是UTF-16LE。有一个在cvs2svn一个选项,它的文档中:

--encoding=ENC 

使用ENC作为编码的文件名,日志消息和作者姓名在CVS回购。 (通过使用--options文件,可以指定一组编码用于文件名,第二组编码用于记录消息和作者姓名。)此选项可以指定多次,在这种情况下,编码将在直到一个成功。默认:ascii。其他可能的值包括标准的Python编码。

所以你可以尝试通过--encoding=utf_16_le到命令行。

1

编码Windows(误导性)指的是“Unicode”是UTF-16LE。这是一个麻烦的编码,因为它不是ASCII兼容的; Windows采用它是因为当时(在UTF-8发明之前)它被认为是Unicode文本最常见的编码。今天,UTF-8绝对是文件Unicode存储的首选编码。

尽管dda的答案应该可以工作(+1),但Subversion不支持将UTF-16文件作为文本处理 - 它们将作为二进制文件处理,这意味着您将无法使用diff/patch/merge。出于这个原因,我强烈建议让cvs2svn继续并将文件更改为UTF-8。