首页 > 如何使 mercurial 和 tortoisehg 在 windows 下支持中文名的文件?

如何使 mercurial 和 tortoisehg 在 windows 下支持中文名的文件?

mercurial 默认使用本地 filesystem 的编码来存储文件名,这在使用 utf8 的 extX 下是完全没有问题的。但是 ntfs 使用的是 utf16le 编码集。mercurial 在不同编码系统中处理数据的时候并不会对字符串进行转换,也就是说 linux 下用 utf8 存储的文件名字符串在 windows 下将会使用 utf16le 解码,这就造成 linux 下推送的文件在 windows 下同步(或反之)后中文名变成乱码。
bitbucket 服务器运行的不是 ntfs,使用的编码肯定不是 utf16le,将本地库推送到 bitbucket 后,在线查看时文件名就会变成乱码。所以只能在本地同步时转换 windows 文件名的编码来解决这个问题。
我在网络上搜索了这个问题,在 mercurial 的官网上发现了 FixUtf8 Extension 这个插件可以解决这个问题,但它已经很久没有更新了。而且这个页面上也写着“incompatible with Mercurial 2.0 and later”。只支持 mercurial 1.x,不支持 2.x,更遑论 3.x。
然后我又在官网上发现了 Windows UTF-8 Plan,这是个在 windows 平台将本地编码转换为 utf8 的项目。可这个项目进展太慢了,12 年 5 月立项,最后一次公开的进度更新是 14 年 6 月,不知道是不是陷入了停滞。
目前采用甚麽办法才能在 windows 下的 mercurial 里正常同步中文名的文件?


比如取每个点的rgba值得平均值,根据这个策略得到每个像素点如何计算得出合并后的像素点的数据。得到一个合并的iamgeData,
然后通过putImage方法弄到合并后的canvas中去。

【热门文章】
【热门文章】