Unicode 文本换行与排版
按字素、词语或显示列换行,支持中文与 emoji 宽度、制表位和准确的 LF/CRLF 下载。
选择正确单位
字素模式只在 Unicode 字符簇边界换行,不拆开组合重音、连接 emoji 或旗帜。词语模式优先使用 Intl.Segmenter 词边界,以字素计宽。显示列模式使用 string-width 8.3,常见中文和 emoji 通常占两列;模糊宽度字符可按窄或宽处理。
制表符、段落与超长词
换行前先按显示列制表位把制表符展开为空格。默认保留原始换行;开启合并软换行后,会修剪并合并以空行分隔的段内各行。新增词边界换行处的空格会丢弃。超长词可按字素拆分,也可保留并报告超宽;单个字素已宽于列限制时会报错,不强行拆开。
复制与下载保留所选换行
浏览器可能把预览文本框中的 CRLF 显示为 LF,但复制与下载使用原始结果,保留所选换行。显示列是近似终端宽度,并非比例字体的像素宽度。工具拒绝控制序列,输入上限为 200,000 个 UTF-16 单位,输出上限为 1,000,000。
常见问题
为什么中文可能比英文更早换行?
显示列模式下,常见汉字占两列,拉丁字母通常占一列。希望每个可见字符簇都计一单位时,请选择字素模式。
这是 Markdown 或代码格式化器吗?
不是。它处理纯文本,可能改变缩进或段落布局,不理解代码语法、Markdown 围栏或表格结构。
输入会上传或保存吗?
不会。处理在本机 Web Worker 中进行,不向 API 上传文本,也不写入本地存储。更改选项会取消旧任务并清除旧结果。
其他语言
参考资料
我们如何确保结果正确
我们使用以下自动化测试验证此工具。下方保留测试用例的原始名称,便于查看实际断言和复现。
- 验证方法
- 检查单词、段落、空行和字素模式,确保 emoji、代理对和组合字符不被拆断。
- 对比依据
- 固定文本样本与字素边界断言。
- 验证范围
- 只覆盖这些样本和边界;不代表所有输入均已证明正确。
测试源码与用例(点击文件名查看)
-
text-wrap-tools.test.js
- word wrapping preserves words, original paragraphs and blank lines
- grapheme mode never splits ZWJ emoji, surrogate pairs or combining sequences
这些测试覆盖列出的样本和边界,不代表所有输入都已证明正确。往返测试和使用同一依赖库的检查,不属于独立交叉验证。