svn日志乱码
(金庆的专栏)
Windows上用TortoiseSVN提交, 在Linux上查看日志时显示的是乱码.
中文字符变成了一个问号和一个8进制数, 如: ?\227。
将日志输出为xml: svn log -r 123456 --xml > log.xml
然后用iconv手工转成GB2312显示:
iconv -f utf8 -t GB2312 log.xml
就可以发现iconv报告: 未知 nn 处的非法输入序列.
此处是一个横杠, "—", GB2312码为0xa1aa, utf8码为0xe28094,
iconv将svn日志uft8转GB2312时失败, 所以才显示出乱码.
iconv 可以将 0xa1aa 转成 0xe28094, 但是不能反向转.
还有一个稍短点的横杠, 0xe28095, GB2312码为0xa844,
iconv可以从GB2312转成utf8, 但是utf8转GB2312失败.
不知有没有办法让svn忽略无法转换的字符? 这样整条日志还是可以看到.
在linux上svn直接提交的长横杠显示是正常的,
GB码是0xa1aa, xml日志中utf8码是0xe28095.
(金庆的专栏)
Windows上用TortoiseSVN提交, 在Linux上查看日志时显示的是乱码.
中文字符变成了一个问号和一个8进制数, 如: ?\227。
将日志输出为xml: svn log -r 123456 --xml > log.xml
然后用iconv手工转成GB2312显示:
iconv -f utf8 -t GB2312 log.xml
就可以发现iconv报告: 未知 nn 处的非法输入序列.
此处是一个横杠, "—", GB2312码为0xa1aa, utf8码为0xe28094,
iconv将svn日志uft8转GB2312时失败, 所以才显示出乱码.
iconv 可以将 0xa1aa 转成 0xe28094, 但是不能反向转.
还有一个稍短点的横杠, 0xe28095, GB2312码为0xa844,
iconv可以从GB2312转成utf8, 但是utf8转GB2312失败.
不知有没有办法让svn忽略无法转换的字符? 这样整条日志还是可以看到.
在linux上svn直接提交的长横杠显示是正常的,
GB码是0xa1aa, xml日志中utf8码是0xe28095.
本文详细介绍了在使用TortoiseSVN提交到Linux环境中遇到的日志乱码问题,即中文字符被显示为问号和8进制数的情况。通过分析日志输出格式和尝试使用iconv工具进行编码转换,最终发现了乱码产生的原因,并提出了相应的解决方案。解释了乱码的具体现象,包括横杠字符在不同编码下的表示形式,并讨论了iconv工具在UTF-8到GB2312编码转换过程中的局限性。
818

被折叠的 条评论
为什么被折叠?



