当前位置: 首页 > 知识库问答 >
问题:

在Git中将UCS-2文件逆向转换为UTF-8

施景同
2023-03-14

我的Git存储库中有一个文件有多个提交,它是用Windows使用的16位Unicode(UCS-2)编码的。

正因为如此,Git认为它是一个二进制文件,而不是文本文件,我看不到不同提交所做的更改。

有没有办法将该文件追溯转换为UTF-8,即重建历史记录,就好像该文件一直是UTF-8,而我一直将其提交为UTF-8文件,而不是16位Unicode文件?

共有1个答案

颛孙正谊
2023-03-14

要追溯性地重新编码文件,请使用git filter branch:

git filter-branch --tree-filter 'recode utf-16..utf-8 file'

如果没有重新编码,请改用较长的iconv-f utf-16-t utf-8文件-o文件。如果该文件在早期版本的树中不存在,您可能需要追加| | true,以便重新编码命令不会失败,并且可以选择抑制错误输出。

 类似资料:
  • 我目前正在工作,并击中一个问题与转换UTF-8字符串到UCS-2字符串与icu库。在图书馆里有几种方法可以做到这一点,但是到目前为止,它们似乎都不起作用,但是考虑到这个图书馆的受欢迎程度,我假设我做错了什么。 首先是通用代码。在所有情况下,我都是在对象上创建和传递字符串,但在它达到转换步骤之前,没有任何操作。 目前使用的utf-8字符串只是“ĩ”。 为了简单起见,我将在这段代码中表示作为使用的字符

  • 我有一个. csv文件编码在UCS-2LE BOM。我需要对它进行一些更改,我想使用preg_replace,所以我想将文件转换为UTF-8。然而,当我转换它时,所有的空格都消失了,所有属于同一行的单词都粘在一起。 我的代码是: 进行转换的正确方法是什么,这样我就不会丢失任何空格或字符? 转换前-Excel中的屏幕截图: 转换文件后:

  • 我有一个脚本,我放在一起经过了许多不同的方式,我可以在VBScript中使用ADODB进行编码转换。 该文件应该从UCS-2 Little-Endian或其可读格式(在限制范围内)转换为UTF-8。然而,问题是,一旦该文件完成转换为UTF-8,在每个字母前后的整个文件中都有许多符号,并且(UCS-2 LE BOM)位于文件的开头。它们是可见的,无需使用任何符号可视化切换。如果您能帮助我了解我在转换

  • 我有一个oracle DB,根据我们的DB管理,没有设置格式,但是当我们将数据导出到文本文件时,它是以utf-8的形式出现的 谁能帮我把这些文本文件转换成Unicode码吗

  • 问题内容: 我需要将文本文件转换为String,最后,我应该将其作为输入参数(类型InputStream)放入IFile.create(Eclipse)。寻找示例或方法,但仍然不知道…需要您的帮助! 只是为了测试,我确实尝试将原始文本文件转换为使用此代码编码的UTF-8 但即使以为最终的* .test.txt文件具有UTF-8编码,里面的字符也已损坏。 问题答案: 您需要使用参数指定的编码。 这也

  • 我需要将多个CSV文件(使用不同的编码)转换为UTF-8。 这是我的代码: 当我尝试运行此代码时,我得到以下错误: UnicodeDecodeError:'utf-8'编解码器无法解码位置5057的字节0xf3:无效的延续字节 有人能帮我吗?谢谢