如果你下载过一盘棋、从某个 App 导出过对局,或者教练甩给你一个 .pgn 文件,那你已经和 Portable Game Notation 打过照面了。PGN 是数字象棋世界的通用语:一种纯文本格式,把一盘棋的全部信息——谁下的、在哪下的、走到第几步、结果如何——存成几乎所有象棋软件都能读懂的样子。本文讲清 PGN 里到底装了什么、它为什么成了事实标准,以及怎么打开或导入一个 PGN。
一个 PGN 长什么样
[Event "City Open"]
[Site "Shanghai CHN"]
[Date "2026.03.14"]
[Round "5"]
[White "Li, Wei"]
[Black "Ivanova, Anna"]
[Result "1-0"]
1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7
6. Re1 b5 7. Bb3 d6 8. c3 O-O 9. h3 Nb8 10. d4 Nbd7 1-0
两部分:上面方括号里的是标签区,下面是着法正文。中间必须空一行,这一点比看上去重要——很多"PGN 打不开"的问题就出在这里。
七项标准标签
PGN 规范定义了七个必备标签,顺序也是固定的:
| 标签 | 含义 |
|---|---|
Event |
赛事名称 |
Site |
比赛地点 |
Date |
日期,格式为 YYYY.MM.DD |
Round |
轮次 |
White |
白方姓名,写作「姓, 名」 |
Black |
黑方姓名 |
Result |
结果:1-0、0-1、1/2-1/2 或 *(未结束) |
不知道的信息用 ? 占位,日期里不确定的部分用 ????.??.??。空着不写,某些解析器会直接报错。
除这七项之外还可以加任意标签,常见的有 ECO(开局编码)、WhiteElo / BlackElo、TimeControl 和 FEN(用于从非初始局面开始的对局)。
着法正文
着法用标准代数记谱法(SAN)书写:Nf3 表示马走到 f3,exd5 表示 e 线兵吃到 d5,O-O 是短易位,O-O-O 是长易位。将军写 +,将死写 #,兵升变写成 e8=Q。
回合号后面跟一个点表示白方走子(1. e4),跟三个点表示从黑方接续(1... e5),后者在只给出局部片段时会用到。
正文里还可以带注释:花括号 {} 里是文字评注,圆括号 () 里是变着,$1、$2 这类数字注解等价于 !、? 这些符号。最后必须以结果收尾,且要与标签区的 Result 一致。
为什么是 PGN 赢了
PGN 在 1994 年由 Steven J. Edwards 提出,它胜出的原因不复杂:它是人能直接读的纯文本。你可以用记事本打开、用邮件发送、粘贴进论坛、存进 Git 仓库,二十年后依然能读。二进制格式做不到这一点。
今天 Lichess、Chess.com、ChessBase、SCID、几乎所有引擎和数据库都原生支持 PGN。它也是你把对局从一个平台搬到另一个平台的唯一可靠通道。
怎么打开一个 .pgn 文件
Lichess:打开 lichess.org/paste,把 PGN 文本粘进去,点 Import game。得到的对局链接可以直接用引擎分析,也可以存进个人 Study。
Chess.com:Learn → Analysis,点左下角的 PGN 标签,粘贴后回车。
桌面软件:ChessBase、SCID vs PC、Arena 都可以直接用「打开文件」。
纯文本编辑器:.pgn 本质就是 .txt,记事本、VS Code 都能打开看内容——排查格式问题时这招最快。
常见的坑
- 标签区和着法之间少了空行——最常见的解析失败原因。
- 智能引号。从 Word 里粘出来的
"会变成“ ”,解析器不认。 - 日期写成
2026-03-14。PGN 用点分隔:2026.03.14。 - 结果缺失。着法正文末尾必须有
1-0这类结果标记。 - 一个文件里放了多盘棋是合法的,两盘之间空一行即可。
从纸质记谱单到 PGN
如果你的棋谱还在纸上,ScanChess 可以把记谱单照片直接转成 PGN:上传照片,AI 识别着法,非法着法会被标出来,点击旁边的铅笔按钮即可修改,然后一键导出。之后要导入 Lichess 或 Chess.com,参考 导入 PGN 到 Lichess 与 导入 PGN 到 Chess.com。

