返回

固定宽度文本转 CSV

数据互转

正在载入

正在加载工具

工具代码会在打开时按需载入,请稍候。

本工具的全部运算都发生在你的浏览器中,输入内容不会发送到任何服务器。

关于这个工具

设置字符列宽或累计边界,检查每个切片并在本地导出 CSV。不上传、不保存输入。 列宽按 Unicode 码点计数,不是字节、UTF-16 单元、字素簇或屏幕列宽。单个 emoji 码点计为 1;组合附加符、变体选择符及 ZWJ 分别计数。不做 Unicode 规范化。

常见用途

  • 转换定长报告导出,同时保留前导零标识符文本。
  • 在导入表格或数据库前检查 Unicode 字段边界。
  • 定位短行、长行、制表符或损坏记录,不静默截断。

使用方法

  1. 1.粘贴定长文本或选择 UTF-8/UTF-16 文件,指定编码或使用 BOM 检测。
  2. 2.输入各列宽度或累计结束位置,选择裁剪、短长行、制表符、空行及表头策略。
  3. 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。

相关工具