【问题标题】:Convert Subversion commit messages to Unicode将 Subversion 提交消息转换为 Unicode
【发布时间】:2011-08-03 07:02:12
【问题描述】:

目前我有一个本地 Subversion 存储库,其中包含大量 cp1251 编码的提交消息。

有什么方法可以将所有提交消息转换为utf-8 编码?

【问题讨论】:

    标签: windows svn encoding utf-8 cp1251


    【解决方案1】:

    你的提交消息are already stored as UTF-8:

    Subversion 在内部将某些数据位(例如,属性名称、路径名和日志消息)处理为 UTF-8 编码的 Unicode。不过,这并不是说您与 Subversion 的所有交互都必须涉及 UTF-8。作为一般规则,Subversion 客户端将优雅而透明地处理 UTF-8 和您计算机上使用的编码系统之间的转换,如果这种转换可以有意义地完成(这是当今使用的大多数常见编码的情况)。

    但是,如果您以某种方式对它们进行了双重编码,那么假设您使用的是 FSFS 样式的存储库,最简单的方法可能是处理您在存储库下方的 db/revprops/*/* 中找到的所有 revprop 文件,然后用正确的编码重写它们,例如使用iconv command-line tool from GnuWin32。 (请注意,这些文件应该有 Unix 行结尾,即 LF 而不是 CRLF)。

    【讨论】:

    • 我正在查看 revs 而不是 revprops 目录,其中日志消息确实存储为 UTF-8。看起来我遇到的问题实际上是其中一个控制台工具无法正确使用 UTF-8。
    • 输入输出?如果输入,那么您可能想要--encoding,正如 mazaneicha 所说;对于输出,您可能会更好地使用--xml 输出(应该是!)始终为 UTF-8。
    【解决方案2】:

    正如 Rup-8 所说,subversion 应该在将所有日志消息存储到存储库之前将它们转换为 UTF-8,然后再转换回本地编码以进行显示。如果您的日志消息未正确转换,则:

    • 确保您的区域设置正确识别您正在使用的编码;或者,
    • 使用 --message-encoding 选项

    【讨论】:

    • 看起来这实际上是一个控制台工具没有正确处理 UTF-8 而不是 SVN 存储库本身的问题。
    猜你喜欢
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    • 2011-07-07
    • 2011-06-12
    • 2010-09-23
    • 1970-01-01
    相关资源
    最近更新 更多