文本工具 · 大小写 / 全角半角

换行符转换

CRLF/LF/CR 互转

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 68 次使用
输入文本,CRLF/LF/CR 转换实时刷新
转换设置 options
输入文本 input
就绪 · 等待输入
转换结果 result
可视化换行符(输出) visualize
行数 lines0输出
字节 bytes0UTF-8
换行符 type输出
已转换 changed0处换行符
就绪 · 纯本地处理,文本不上传、不入 URL
第一节

关于本工具

About

从 Windows 拷个脚本到 Linux 服务器,一运行就报错——多半是换行符在作祟。这个工具把 CRLF、LF、CR 三种行尾标记互相转换,不碰文件内容。粘贴文本,点一下,换行符就换成目标格式。所有处理都在浏览器本地完成,文件不会上传到任何服务器。

使用场景

脚本跨平台报错

后端工程师在 Windows 上写完一个 Python 脚本,部署到 Linux 服务器后运行时一直报语法错误。排查两小时发现是编辑器默认保存了 CRLF 换行,而 Linux 的 shell 解释器只认 LF。把脚本拖进本工具转成 LF 格式,再上传执行,三秒就跑了通。

Git 提交全红差异

前端开发小张用 VS Code 改了一个同事的配置文件,提交 PR 后 GitHub 显示整文件被删又重建,实际只改了一行。原因是同事用的 Mac(LF),小张没关自动换行转换,本地存成了 CRLF。用本工具把文件统一转成 LF 再 commit,diff 恢复正常,只显示那一行变更。

CSV 导入系统乱行

运营专员从老系统导出 3000 行客户数据,准备导入新 CRM。导入后 1/3 的记录错位,手机号跑到姓名列。检查发现老系统导出的是 CR 换行(Mac 经典格式),新系统只认 CRLF。用本工具把整份 CSV 转成 CRLF,重新导入后所有字段对齐,省去手动清洗 1000 条脏数据的 4 小时。

邮件正文格式错乱

市场部用 Outlook 编辑了一封带表格的营销邮件,复制到企业微信发送后表格全部挤成一团。原因是 Outlook 内部用 CRLF 换行,企业微信网页端解析时把多余的回车吞掉了。把邮件原文粘贴到本工具转成 LF 格式,再粘贴到企业微信,表格结构完整保留。

日志分析关键字漏查

运维同事用 grep 搜索 Nginx 错误日志中的 'timeout' 关键字,始终少查到几十条记录。后来发现日志文件来自不同服务器,有的用 LF 换行,有的用 CRLF,grep 默认模式把 CR 字符当成了行内容的一部分。用本工具统一转成 LF 后再 grep,所有 timeout 记录全部命中。

第二节

使用指南

Getting Started

使用步骤

  1. 1在输入框粘贴或键入原始文本,工具自动检测换行符类型(CRLF / LF / CR)并高亮标记
  2. 2点击目标格式按钮(如「转 LF」),转换结果即时显示在右侧预览区,差异行以颜色区分
  3. 3预览区确认无误后,点击「复制结果」按钮将转换后文本存入剪贴板
  4. 4若需批量处理,点击「上传文件」选择 .txt 或 .csv 文件,工具自动完成格式转换并弹出下载链接

输入输出示例

输入输出说明
Hello WorldHello World常规:LF 转 CRLF,验证换行符替换是否影响其他字符
Line1 Line2Line1 Line2常规:CRLF 转 LF,验证 Windows 换行转 Unix 格式
边界:空输入,验证工具不报错且输出空串
NoNewlineHereNoNewlineHere边界:无换行符的纯文本,验证工具不添加多余换行
边界:连续多个 LF,验证每个都被正确转换,不合并或丢失
Mixed LF CR EndMixed LF CR End易错:混合三种换行符(CRLF、LF、CR),验证统一转换为 LF 时是否遗漏
Leading TrailingLeading Trailing易错:开头或结尾的换行符,验证不丢失首尾空行

常见错误对照

1.混用换行符导致文件损坏

✗ 错误在 Windows 记事本中编辑 shell 脚本后直接保存(默认 CRLF),上传到 Linux 服务器运行报错
✓ 修复用本工具将文本转为 LF 后再上传,或在编辑器(VS Code/Notepad++)中设置行尾序列为 LF

Linux/Unix 系统只认 LF 作为换行符;CRLF 会被 shell 解释为 '回车+换行',导致命令末尾多出一个 \r,脚本无法执行。

2.误将二进制文件当作文本转换

✗ 错误把 .exe、.jpg、.zip 等二进制文件的内容直接粘贴到输入框,点击转换后输出乱码
✓ 修复本工具仅处理纯文本文件;二进制文件应使用专门的十六进制编辑器或 base64 编码后再处理

二进制文件中可能包含与换行符(0x0A、0x0D)相同的字节值,转换后会破坏文件结构,导致文件不可用。

3.把 '空行' 和 '换行符' 混淆

✗ 错误认为文本末尾有多个空行 = 多个换行符,转换后空行消失
✓ 修复每个空行对应一个连续的换行符序列(如 \n\n 表示两个换行符,中间无字符);转换后空行数量不变,只是换行符类型变了

换行符转换只改变行尾标记的编码方式(\r\n ↔ \n ↔ \r),不增减行数。空行是连续两个换行符之间的空白区域。

4.在 HTTP 请求体中用了错误的换行符

✗ 错误手动构造 HTTP POST 请求体时,用 LF 分隔 header 和 body
✓ 修复HTTP 协议(RFC 7230)要求 header 结束标志为 CRLF(\r\n\r\n),body 中换行符视 Content-Type 而定

HTTP 协议严格规定行尾必须是 CRLF;使用 LF 会导致服务器解析失败,返回 400 Bad Request。

5.Git 跨平台协作时忽略换行符配置

✗ 错误在 Windows 上提交代码时未配置 git config core.autocrlf,导致仓库中混入 CRLF
✓ 修复设置 git config --global core.autocrlf true(Windows)或 input(macOS/Linux),让 Git 自动转换换行符

Git 默认不转换换行符;跨平台协作时,Windows 的 CRLF 会污染仓库,导致 diff 显示整个文件被修改。

6.CSV 文件中换行符导致列错位

✗ 错误CSV 字段内包含换行符(如地址字段跨行),直接转换后破坏字段结构
✓ 修复CSV 中字段内换行符必须用双引号包裹(RFC 4180),转换前确认字段引号正确闭合

CSV 解析器将未引号的换行符视为行结束标志;字段内换行符需用双引号转义,否则转换后数据列会错位。

7.把 Mac 旧系统(CR)文件误认为 LF

✗ 错误将 Mac OS 9 及更早版本的纯 CR 文件直接当作 LF 文件处理,导致所有行合并为一行
✓ 修复先确认文件来源:macOS X 之后使用 LF,旧 Mac(System 1-9)使用 CR;不确定时用本工具选择 'CR → LF' 转换

CR(\r)在 Unix 系统中不被视为换行符,cat 命令会显示为单行;只有明确知道来源是旧 Mac 系统才需处理 CR。

8.在代码字符串中混淆转义序列

✗ 错误在 Python 字符串中写 "line1\nline2" 并认为 \n 就是两个字符(反斜杠 + n)
✓ 修复Python 中 \n 是转义序列,代表一个实际换行符(0x0A);若需要字面量反斜杠+n 应写 r"line1\nline2" 或 "line1\\nline2"

编程语言中 \n 是转义字符,不是两个独立字符;混淆会导致字符串内容与预期不符,尤其影响文件写入和网络传输。

第三节

工作原理

How It Works

核心公式

替换后文本 = 原文本.replace(/\r\n?|\n/g, 目标换行符)

变量说明

  • 原文本待转换的原始字符串
  • 目标换行符CRLF(\r\n)、LF(\n)或CR(\r)

示例

原文本含混合换行:"A\r\nB\nC\rD",目标为LF(\n)。正则匹配所有\r\n、\n、\r,统一替换为\n,得"A\nB\nC\nD"。

原始文本含 CRLF / LF / CR字符扫描逐字节识别换行符(0x0D 0x0A / 0x0A / 0x0D)替换映射按目标格式替换(CR→LF / LF→CR / …)输出新文本纯统一换行符格式目标格式选择CRLF / LF / CR
用户输入 本地处理 输出结果
第五节

常见问题

Q & A
我复制了一段代码里的换行符,转完还是没变化,是不是工具坏了?

不是工具问题,很可能是复制时编辑器自动保留了原格式。多数代码编辑器(VS Code、Sublime)在粘贴时会自动适配当前文件的换行风格,导致你看到的换行符已经和工具里选的目标格式一致了。建议先在本工具输入区粘贴后,点「查看原始字符」按钮(如果有),确认原始换行符类型;或者用十六进制编辑器看一眼 0x0A/0x0D 的数量再做转换。

CRLF 转 LF 后文件大小会变小吗?

会,但变化很小。CRLF 每行末尾多一个 0x0D(回车),文件大小增加约 1 字节/行。如果文件有 10 万行,转换后大约减少 97KB。对于纯文本文件这个差异通常可忽略,但如果你在处理 Git 仓库的换行符统一(autocrlf),这点差异会导致 Git 认为文件被修改了,建议配合 .gitattributes 一起用。

为什么我粘贴的文本里有些行有换行、有些没有,转完格式乱了?

这通常是因为原始文本混用了 CRLF 和 LF 两种换行符(比如从不同操作系统拼接的日志)。本工具按「全局统一替换」处理,不会智能识别每行当前用的哪种。如果你的文本里两种换行符都有,建议先转成 LF(Unix 标准),再从 LF 转成你想要的最终格式;或者先用正则替换工具把零散的 CR 先统一。

这个工具支持把换行符换成逗号或者空格吗?

不支持。本工具只做 CRLF / LF / CR 三种标准换行符之间的互转,不涉及替换为其他字符。如果你需要把换行符替换成逗号、空格或自定义分隔符,应该使用「文本替换」或「正则替换」类工具。本工具的输出结果在复制后可以直接粘贴到替换工具里做二次处理。

我上传了一个 CSV 文件,转完换行符后 Excel 打开还是乱行,怎么回事?

CSV 文件乱行通常不是换行符类型的问题,而是字段内包含换行符(引号包裹的单元格内换行)。本工具只处理行末的换行符,不会触碰引号内的换行。建议先用支持 CSV 解析的工具(如 Notepad++ 的 CSV Lint 插件)检查字段内换行情况;如果字段内确实有换行,需要先用正则把引号内的换行替换为占位符,转换后再替换回来。

Mac 和 Windows 之间传文本,到底该用哪种换行符?

跨平台传文本最稳妥的是用 LF(Unix 格式)。Windows 原生用 CRLF,Mac 从 OS X 开始也用 LF,但旧 Mac(System 9 及之前)用 CR。如果你不确定对方用什么系统,统一转成 LF;大部分现代编辑器(VS Code、Sublime、Notepad++)都能正确显示 LF 换行的文件。本工具支持一键把 CRLF 转成 LF,适合做跨平台前的预处理。

这个工具在浏览器里运行,我的文本会被上传到服务器吗?

不会。本工具标记为 FE 实现,所有换行符转换逻辑都在浏览器本地 JavaScript 里执行,文本不会离开你的电脑。你可以关掉网络再试一次——转换功能依然可用。如果你的文本包含敏感数据(如密钥、密码、个人隐私),可以放心使用,没有上传风险。

为什么我转完换行符后,粘贴到某些网站里还是显示成一整段?

这通常是目标网站或输入框对换行符的渲染方式不同。有些网站(如文本编辑器类)会把 LF 渲染成换行,但某些后台系统(如数据库管理面板、旧版 CMS 后台)只认 CRLF。如果你粘贴到特定网站后失效,先确认该网站支持哪种换行符:Windows 服务器通常需要 CRLF,Linux 服务器通常接受 LF。本工具支持三种格式互转,你可以多试一次转成 CRLF 再粘贴。

CR 这种换行符现在还有人用吗?我什么时候需要转成 CR?

CR 换行符目前主要用于老旧的 Mac 系统(System 9 及之前)和一些嵌入式设备输出的日志。如果你在处理 2000 年以前的 Mac 文件、某些工业设备(如 PLC、条码扫描器)的导出文本,或者从某些老旧数据库导出的文本,可能会遇到 CR 换行符。日常使用中几乎碰不到,但本工具保留了这个选项,方便处理这类历史遗留数据。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭