要把 TXT 文件变成 Markdown,通常只需将扩展名从 .txt 改为 .md。Markdown 是纯文本,所以文本文件本身就是有效的 Markdown 文档。
纯文本中没有可以还原的标题、粗体或表格,转换器也不会凭空创造。在其他情况下,用 MD Factory 转换会有帮助:文件使用 Windows-1251 等旧编码,TXT 文件与 PDF 和 Word 文档在同一个文件夹中,或者给 AI 智能体用的文件库中的每个文件都需要统一的形式。
何时改名就够了
当文字是 UTF-8 编码,并且没有其他程序需要用旧名称访问该文件时,改名就行。Markdown 的 CommonMark 规范 对 Markdown 的定义是:任何字符序列都是有效的文档。
要查看编码,请用记事本打开文件,看状态栏右下角。UTF-8 表示可以直接改名。其他任何编码,例如 ANSI 或 UTF-16,都必须先变成 UTF-8,下文各节会介绍方法。ANSI 指较旧的 Windows 编码,例如用于西里尔文的 Windows-1251,或用于西欧语言的 Windows-1252。
要重命名单个文件,请先在文件资源管理器中显示文件扩展名:查看,然后显示,再选文件扩展名。然后把名称末尾的 .txt 改为 .md,Windows 询问是否更改扩展名时予以确认。正如 Microsoft 所指出,新的扩展名只更改名称,不更改内容。
对于多个文件,请在它们所在的文件夹中打开 PowerShell。此命令只会列出它将要重命名的内容:
Get-ChildItem -Filter *.txt | Rename-Item -NewName { $_.BaseName + '.md' } -WhatIf
如果列表无误,请运行去掉最后一部分的同一条命令:
Get-ChildItem -Filter *.txt | Rename-Item -NewName { $_.BaseName + '.md' }
要包含子文件夹,请使用同样的两条命令,并多加一个参数:
Get-ChildItem -Filter *.txt -Recurse | Rename-Item -NewName { $_.BaseName + '.md' } -WhatIf
Get-ChildItem -Filter *.txt -Recurse | Rename-Item -NewName { $_.BaseName + '.md' }
如果其他程序按旧名称打开这些文件,请在重命名之前先复制一份。
何时值得转换
| 情形 | 改名之后 | 用 MD Factory 转换之后 |
|---|---|---|
| 文字是 Windows-1251 或其他旧编码 | 文字仍保持该编码;按 UTF-8 读取该文件的应用会显示乱码 | 文字以 UTF-8 保存,文件被标记为需要检查,方便你检查 |
| TXT 文件与 PDF、Word 和其他文档在同一个文件夹中 | 只有 TXT 文件会改变;其他文档需要用别的工具 | 一次遍历文件夹及其子文件夹;每个文档旁边都会生成一个 Markdown 文件 |
| 原文件必须保持原样 | TXT 文件变成了 Markdown 文件 | TXT 文件保持不变,Markdown 文件出现在它旁边 |
| 脚本或 AI 智能体需要每个文件都是同样的形式 | 每个文件保留自己的编码和换行符 | 每个 Markdown 文件的编码和换行符都相同 |
如果文件夹中有多种格式,请参阅 如何批量将文档转为 Markdown。要为 AI 智能体整理结果,请参阅 如何为 AI 智能体准备文档.
MD Factory 如何处理 TXT 文件
点击添加文件或添加文件夹来添加 TXT 文件或它们所在的文件夹,也可以直接拖到窗口中。转换会立即开始,每个 Markdown 文件都保存在对应的 TXT 文件旁边。MD Factory 原样复制文字:不添加标题或列表,也不改写任何内容。
- UTF-8 文字,或带字节顺序标记的文字,会原样读取。该文件的状态为已完成。
- 较旧编码的文字会根据内容识别出来,并以 UTF-8 保存。这样的文件始终会被标记为需要检查,并提示“推断出文本编码。检查特殊字符。”
- 如果无法确定编码,该文件会失败,并提示“无法可靠地读取文本编码。”
- Markdown 文件始终是不带字节顺序标记的 UTF-8,换行符为 LF。
- Markdown 会解读为格式的字符保持原样。以 # 加空格开头的行在 Markdown 查看器中会变成标题,星号之间的词会变成斜体。
- 只转换以 .txt 结尾的文件。.log 或 .ini 之类的文件会显示为已跳过;请把它们改名为 .txt 再转换,或者直接改为 .md。
- 超过 64 MB 的 TXT 文件会失败,并提示“该文档超出了当前的处理限制。”请将它拆分成较小的文件,或者直接改名。
检查编码是推断出来的文件
打开每个标记为需要检查的文件,查看英文字母以外的字符:西里尔字母、带重音的字母、弯引号和破折号。
Windows-1251、KOI8-R 或 DOS 866 编码的西里尔文字,只要文件中至少有一句话,通常都能被正确识别。
Windows-1252 编码的西欧文字是薄弱环节。MD Factory 常常把它当作中欧的 Windows-1250,有些字母会变:è 变成 č,ñ 变成 ń,ã 变成 ă。
如果这类字符在文件中很少见,例如英文文字中的几个带重音的名字或弯引号,它们会变成 � 符号。
TXT 文件本身不会被修改,所以你可以修正后再次转换。只有文字看起来正确时才保存文件:把乱码保存为 UTF-8 会使损坏无法挽回。如果文件很重要,请在副本上操作。
- 用记事本打开 TXT 文件。如果文字看起来正确,请依次选择文件、另存为,将编码设为 UTF-8 并保存。
- 如果文字在记事本中看起来也不对,请用 Visual Studio Code 打开文件。点击状态栏中的编码,选择“通过编码重新打开”,并选择正确的编码,例如西欧语言 (Windows 1252)。然后再次点击编码,将文件保存为 UTF-8。
- 在 MD Factory 中,点击清除清空列表,然后重新添加该文件。或者直接把它改名为 .md:UTF-8 的文件不再需要转换。
如果你没有编辑过 MD Factory 之前的结果,它会替换该结果。如果你编辑过,新结果会带编号保存,例如 notes (2).md.
自己添加标题和列表
纯文本不会说明哪一行是标题,所以结构由你决定。用任意文本编辑器打开 Markdown 文件,在行首输入这些标记:
| 要得到 | 行首写 |
|---|---|
| 标题 | # 加空格;## 表示子标题,### 表示再下一级 |
| 项目符号列表项 | - 加空格 |
| 编号列表项 | 1. 加空格 |
| 新段落 | 前面加一个空行 |
段落内的单个换行可能显示为空格:CommonMark 规范允许两种处理方式。在换行有意义的地方,例如地址或诗歌,请在每行末尾加一个反斜杠,或在行与行之间留一个空行。
要防止某个字符变成格式标记,请在它前面加一个反斜杠:行首的 \# 会显示为普通的 #。GitHub 的 基本写作和格式语法指南 列出了其他标记。
AI 智能体可以替你添加结构。请让它保留原有文字,并写入一个新文件:
为 notes.md 添加 Markdown 标题和列表。
不要更改、添加或删除任何词语。
将结果保存为 notes-formatted.md,并保持 notes.md 不变。
在保留新文件之前,请对比这两个文件。要查看带格式的效果,请阅读 如何在 Windows 上打开 MD 文件.