固定宽度文本转 CSV
数据互转
正在载入
正在加载工具
工具代码会在打开时按需载入,请稍候。
本工具的全部运算都发生在你的浏览器中,输入内容不会发送到任何服务器。
关于这个工具
设置字符列宽或累计边界,检查每个切片并在本地导出 CSV。不上传、不保存输入。 列宽按 Unicode 码点计数,不是字节、UTF-16 单元、字素簇或屏幕列宽。单个 emoji 码点计为 1;组合附加符、变体选择符及 ZWJ 分别计数。不做 Unicode 规范化。
常见用途
- 转换定长报告导出,同时保留前导零标识符文本。
- 在导入表格或数据库前检查 Unicode 字段边界。
- 定位短行、长行、制表符或损坏记录,不静默截断。
使用方法
- 1.粘贴定长文本或选择 UTF-8/UTF-16 文件,指定编码或使用 BOM 检测。
- 2.输入各列宽度或累计结束位置,选择裁剪、短长行、制表符、空行及表头策略。
- 3.预览并转换,检查原始边界、处理后字段、源行诊断和变更计数。未解决错误会阻止 CSV。 复制或下载完整 UTF-8 CSV,或下载完整诊断报告。修改输入/选项、取消或离开页面会清除旧结果。
可执行转换示例
示例 1
{"spec":"3,6,5","trim":"right"}
001Ada 00123
002猫😀 00456"column1","column2","column3" "001","Ada","00123" "002","猫😀","00456"
在默认选项上应用所示覆盖项,再转换源文本。下方是完整预期 CSV,所有字段加引号,记录以 CRLF 结束。
示例 2
{"spec":"1,1,2,1"}
猫😀éX"column1","column2","column3","column4" "猫","😀","é","X"
在默认选项上应用所示覆盖项,再转换源文本。下方是完整预期 CSV,所有字段加引号,记录以 CRLF 结束。
示例 3
{"spec":"3,4,2","short":"allow"}
001Ada"column1","column2","column3" "001","Ada",""
在默认选项上应用所示覆盖项,再转换源文本。下方是完整预期 CSV,所有字段加引号,记录以 CRLF 结束。
示例 4
{"spec":"3,3","long":"remainder"}
001AdaExtra"column1","column2","_remainder" "001","Ada","Extra"
在默认选项上应用所示覆盖项,再转换源文本。下方是完整预期 CSV,所有字段加引号,记录以 CRLF 结束。
示例 5
{"spec":"3,5,6","layout":"boundaries"}
001ABx"column1","column2","column3" "001","AB","x"
在默认选项上应用所示覆盖项,再转换源文本。下方是完整预期 CSV,所有字段加引号,记录以 CRLF 结束。
示例 6
{"spec":"3,5","header":"none"}
001"a,b""001","""a,b"""
在默认选项上应用所示覆盖项,再转换源文本。下方是完整预期 CSV,所有字段加引号,记录以 CRLF 结束。
示例 7
{"spec":"4,2","tabs":"expand"}
A BC"column1","column2" "A ","BC"
在默认选项上应用所示覆盖项,再转换源文本。下方是完整预期 CSV,所有字段加引号,记录以 CRLF 结束。
示例 8
{"spec":"2,4","header":"first","trim":"right"}
IDName
01Ada "ID","Name" "01","Ada"
在默认选项上应用所示覆盖项,再转换源文本。下方是完整预期 CSV,所有字段加引号,记录以 CRLF 结束。
示例 9
{"spec":"3,3","header":"custom","names":"=id\nname"}
001Ada"'=id","name" "001","Ada"
在默认选项上应用所示覆盖项,再转换源文本。下方是完整预期 CSV,所有字段加引号,记录以 CRLF 结束。
示例 10
{"spec":"5","header":"none"}
=1+2"' =1+2"
在默认选项上应用所示覆盖项,再转换源文本。下方是完整预期 CSV,所有字段加引号,记录以 CRLF 结束。
示例 11
{"spec":"1","short":"allow"}
A
B"column1" "A" "" "B"
在默认选项上应用所示覆盖项,再转换源文本。下方是完整预期 CSV,所有字段加引号,记录以 CRLF 结束。
示例 12
{"spec":"1","blank":"skip"}
A
B"column1" "A" "B"
在默认选项上应用所示覆盖项,再转换源文本。下方是完整预期 CSV,所有字段加引号,记录以 CRLF 结束。
示例 13
{"spec":"3,3","trim":"both"}
A B "column1","column2" "A","B"
在默认选项上应用所示覆盖项,再转换源文本。下方是完整预期 CSV,所有字段加引号,记录以 CRLF 结束。
导出前检查
- 列宽 3,6,5 等同于边界 3,9,14。边界从 1 开始且包含结束位置。从第 1 个字符连续覆盖,不支持跳过或丢弃列。
- LF、CRLF 和 CR 分隔记录;末尾换行不额外产生一行。U+2028/U+2029 保留为数据。文件 BOM 仅在编码匹配时移除,粘贴的 BOM 保留。先展开制表符再切列。跳过空行仅指零字符行,不包含全空格行。 浏览器可能规范化粘贴的换行;检查原始换行计数请使用文件。
- 短行:实际长度 / 配置长度。
- 长行:实际长度 / 配置长度;预览保留溢出。
- 在风险字段及表头前加单引号,仅改变导出文本,不改变字段预览。不能保证所有表格软件都安全;为保留前导零,请按文本导入列。
限制与说明
- 原始文件与解码文本各不超过 1,048,576 字节;10,000 个物理行、50 个输出列、200,000 个单元格。布局最多 4,096 码点;展开后单行最多 16,384 码点,展开文本最多 2 MiB,CSV 最多 4 MiB,限时 5 秒。
- 允许短行时保留已有片段,缺失字段为空,不补造空格。长行剩余策略为每行增加一列,即使没有剩余字符;不提供丢弃溢出的模式。
- 生成表头使用 column1…,剩余列表头为 _remainder。首行表头若有非空剩余名称则保留,否则使用 _remainder。自定义名称只对应配置列,剩余列自动命名。空、非法或重复表头会阻止 CSV。
- 裁剪仅移除 U+0020,不移除制表符、NBSP 或其他 Unicode 空白。不解析数字、转换日期、改变大小写或规范化。CSV 引号不能阻止表格软件导入时去掉前导零。
- 制表符展开为到下一个码点制表位的空格,从每个物理行的位置零开始;不是屏幕显示宽度。除制表符与换行外的控制字符及未配对代理项会阻止 CSV。 行数上限内的全部已报告问题都会保留,界面仅分页显示。JSON 诊断导出包含选项、自定义表头和计数,分享前请检查。
常见问题
中文或 emoji 占两列吗?
不是,每个 Unicode 标量码点计为 1。组合序列或家庭 emoji 可能包含多个码点。按字节或终端显示宽度生成的定长文件需要不同的布局定义,本工具不会猜测列宽。
会保留空格和前导零吗?
默认保留。只有明确选择的 ASCII 空格裁剪或制表符展开会修改字段文本。CSV 为所有字段加引号,不把字符串转成数字;表格导入仍可能自动转换,请按文本导入列。
为什么预览后不能导出?
被拒绝的短长行、制表符、非法字符或表头会阻止整份 CSV。预览仍保留已有字段和溢出。请修正源数据或选择已说明的宽松策略;不会静默丢弃损坏行。
支持哪些编码与换行?
严格 UTF-8、UTF-16LE、UTF-16BE。自动模式识别 BOM,否则按 UTF-8,不猜测编码。拒绝 UTF-32、损坏字节或不匹配 BOM。CSV 使用无 BOM 的 UTF-8 和 CRLF。