跳到主要内容
AZ Tools

行尾与 BOM 转换器

归一化之前分别统计 CRLF、孤立 CR 与孤立 LF,从而识别混合约定的文件(脏 git diff 或在 Windows 下失败的 Bash 脚本的常见原因)。输出字节数包含 BOM,因此你确切知道写入磁盘的内容。所有处理都在浏览器本地完成。

目标行尾
UTF-8 BOM
输出
输入统计
  • LF 计数1
  • CRLF 计数1
  • 孤立 CR 计数0
  • 总行数3
  • 输出字节(UTF-8)28
  • 存在 BOM

混合行尾的文件通常意味着源在多个平台之间被编辑过 — 统一化能解决大多数「为何我的 diff 爆炸」的烦恼。

使用方法

  1. 在输入处粘贴文本或拖入文件内容。
  2. 选择目标行尾(LF 用于 Unix/macOS,CRLF 用于 Windows,CR 用于旧版 Mac)。
  3. 选择 BOM 策略并复制输出。

常见问题

什么时候应保留 BOM?
一些遗留 Windows 工具与部分 Excel CSV 导入依赖 BOM。其他场合(尤其 shell 脚本、JSON 与现代构建链中的源代码)应当移除。
什么是混合行尾的文件?
包含 LF/CRLF/CR 中不止一种的任何文件。常见于跨平台编辑文本或生成器拼接来自不同来源的片段时。统一到单一风格能让 git diff 和下游解析器正常工作。
为什么 git 把整个文件都显示成改动过?
因为每一行都变了:文件以一种换行方式提交,又以另一种方式保存,于是没有任何未改动的行可以让差分对齐。统一一次并把这个状态提交上去,再设定仓库的换行策略,下次检出时就不会再被转换一遍。
最后一行末尾需要换行符吗?
对多数 Unix 工具来说需要:一行被认为是以换行符结束的,所以差分才会提示「文件末尾没有换行符」,把两个缺少末尾换行的文件拼起来时,前一个的最后一行也会和后一个的第一行粘在一起。这和你选择哪种换行风格是两回事。

相关工具