Chr*_*ing 13 unicode mercurial ms-access tortoisehg
在Microsoft Access 2007项目中,使用内置函数"SaveAsText"将Access表单对象导出到具有专用软件的文件.这是必要的,因为Access不会将任何代码模块存储在独立的文件中.
该文件以字节"FF FE"(根据http://de.wikipedia.org/wiki/Byte_Order_Mark为UTF-16 )开头.我认为由于此文件中有许多NUL字符,Hg将此文件视为二进制文件.因此,TortoiseHG工作台中的差异窗格总是告诉我们
文件或差异未显示:文件是二进制文件.
在这个假设下,这是可以理解的.但是这个文件只是通常的源代码.我可以在Windows的记事本中查看它,没有任何问题.
有没有办法告诉Mercurial,这个特定的文件应该被视为文本,而不是二进制文件?
编辑: 除了下面标记的首选答案,我决定不更改保存行为,而是使用"Visual Diff"命令(选择文件,然后按Ctrl + d).
我猜你经常或偶尔导出表单对象以跟踪源代码更改.
说服Mercurial文件不是二进制的唯一方法是避免NUL字节.
您可能希望将源代码文件转换为ASCII(或ANSI)编码作为导出中的附加步骤,以避免NUL字节.如果源代码文件包含Unicode字符,您可以尝试UTF-8,因为这只会在必要时执行多字节字符,否则会执行单字节字符,从而再次避免使用NUL字节.我简单地试了一下,Mercurial处理UTF-8:它没有显示"File is binary",而是实际差异.我在命令行上提交,但在TortoiseHg中查看了差异.我在下面有一个关于命令行编码挑战的链接.
该hgrc编码/解码部分可能会帮助到UTF-16文件过滤到的东西,更好地工作特别有用.
关于Mercurial和编码的其他几个页面:
TortoiseHg 2.1 + Mercurial 1.9