1. e4 e5 2. Nf3 Nc6 3. Bb5 用标准代数记谱法(Standard Algebraic Notation,SAN)记录了国际象棋的前三个完整回合。SAN 是通行于各大国际棋联(FIDE)锦标赛、记谱单和数字数据库的通用国际象棋记谱法。国际象棋记谱法将 64 格棋盘上的每一步着法映射为一个简洁的字符串:代表所走棋子的大写字母(K、Q、R、B、N;兵不带字母),后跟目标格的坐标(直线 a–h,横线 1–8)。特殊情况会对该字符串进行修饰:x 表示吃子,+ 表示将军,# 表示将死,O-O 或 O-O-O 表示王车易位,= 表示升变。
只要掌握了这种坐标语法,你就能毫无歧义地读懂任何锦标赛记谱单、抄录历史对局,或将着法导入分析引擎。
记谱符号一览
| 记谱符号 | 含义 | 示例 | 语境说明 |
|---|---|---|---|
a–h、1–8 | 直线(竖列)与横线(横排)坐标 | e4 | 兵挺进到 e4 格 |
K、Q、R、B、N | 王、后、车、象、马 | Nf3 | 马走到 f3(K 已保留给王使用) |
| (无棋子字母) | 兵的着法 | d4 | 只有单纯的坐标始终代表兵的着法 |
x | 吃子 | Bxe5、exd5 | 棋子或兵吃掉对方棋子 |
+ | 将军 | Qh5+ | 对方的王受到直接攻击 |
# | 将死 | Qxf7# | 王受到攻击且无合法应将着法;对局结束 |
O-O | 王翼易位(短易位) | O-O | 王向 h 线方向移动两格;车跳过王 |
O-O-O | 后翼易位(长易位) | O-O-O | 王向 a 线方向移动两格;车跳过王 |
=Q、=N | 兵升变 | e8=Q | 兵到达第 8 横线升变(此处升变为后) |
e.p. | 吃过路兵 | exd6(或 exd6 e.p.) | 兵吃掉刚挺进两格的对方兵 |
1-0、0-1、1/2-1/2 | 对局结果 | 1-0 | 白胜(1-0)、黑胜(0-1)或和棋(1/2-1/2) |
坐标网格:直线与横线
棋盘上的每个格子都拥有一个唯一的双字符坐标,由垂直竖列(直线,file)和水平横排(横线,rank)组合而成。
- **直线(Files)**垂直贯穿,从 a 到 h,从白方视角看自左向右排列。
- **横线(Ranks)**水平延伸,从 1 到 8,以白方底线处的第 1 横线为始,到黑方底线处的第 8 横线为止。
白方左下角的角格是 a1,右上角的角格是 h8。当棋手在王所在的直线上将兵向前挺进两格时,记录的着法就是简单的 e4。
无论你执白还是执黑,棋盘坐标始终固定不变:e4 格永远是 e 线的第 4 横线。为确保坐标与棋盘相符,请核对《FIDE 国际象棋规则》第 2.1 条规定的摆盘规则:每位棋手右手边最近的角格必须是浅色格("light on the right",即“右下白格”)。国际象棋怎么摆逐格讲解了棋子的摆放,你也可以在棋盘编辑器上测试坐标布局。
棋子字母与着法构成
除兵以外的每个棋子都由一个大写字母标识:
| 棋子 | 字母 | 示例着法 | 说明 |
|---|---|---|---|
| 王(King) | K | Kf1 | 王走到 f1 |
| 后(Queen) | Q | Qd2 | 后走到 d2 |
| 车(Rook) | R | Re1 | 车平移到 e1 |
| 象(Bishop) | B | Bb5 | 象出子到 b5 |
| 马(Knight) | N | Nf3 | 马跳到 f3(使用 N 是因为 K 已属于王) |
| 兵(Pawn) | (无) | e4 | 兵不带任何棋子前缀 |
基本着法由棋子字母和目标格组合而成:Nf3 读作“马走到 f3”,Bb5 读作“象走到 b5”。由于兵没有首字母,任何以小写直线字母开头的着法(c4、d5、e4)都会立刻被识别为挺兵。
尽管《FIDE 规则》第 C.2 条允许各国棋协在印制记谱单时使用本土化的棋子字母(例如德语中代表马的 S 即 Springer,或法语中代表马的 C 即 Cavalier),但国际锦标赛比赛和数字 PGN 文件严格要求使用标准英文字母:K、Q、R、B 和 N。
吃子与吃过路兵
当棋子吃掉对方棋子时,在棋子字母与目标格之间加上 x:
Bxe5:象吃掉位于 e5 格的棋子。Qxe7:后在 e7 格吃子。
由于兵没有棋子字母,兵吃子需要标明出发点信息。先写出吃子兵的出发直线,接着写 x,最后写落子格:
exd5:e 线上的兵吃掉 d5 格的对方棋子。cxb4:c 线上的兵吃掉 b4 格的对方棋子。
吃过路兵
吃过路兵(En Passant)的记录方式与普通的兵吃子完全相同,记的是己方兵落子的目标格——而不是被吃掉的对方兵所在的格子:
exd6:位于 e5 的白兵吃掉刚刚从 d7 挺进两格到 d5 的黑兵,落在 d6 格。
有些棋手为了自己看着清晰会在记谱单上写 exd6 e.p.,但严格的 SAN 和 PGN 解析器会省略该后缀。
王车易位、将军、将死与升变
特殊情况会对基础记谱字符串进行修饰:
王车易位
根据《FIDE 规则》附录 C.13.1 和 C.13.2,国际棋联在纸质记谱单上用数字零表示易位(0-0 和 0-0-0)。但在数字 PGN 文件中,标准代数记谱法规范要求使用大写字母 O:
- 王翼易位(短易位):
O-O(纸上写为0-0) - 后翼易位(长易位):
O-O-O(纸上写为0-0-0)
将军与将死
- 将军末尾加加号:
Qh5+表示该着法形成将军。 - 将死末尾加井号:
Qxf7#表示将死并结束对局。 - 在早期的老记谱单上,棋手有时会用
ch表示将军,用++表示双将或将死,但现代 SAN 统一规范为+和#。
兵升变
当兵到达第 8 横线(黑方为第 1 横线)时,必须立即升变。在 SAN 中,依次写下目标格、等号 = 以及所选棋子的大写字母:
e8=Q:兵升变为后。bxa1=N+:兵在 a1 吃子,低升变为马,并形成将军。e8=Q#:兵升变为后并将死。
消歧:当两个棋子能走到同一格时
当两个相同的棋子都能合法移动到同一个目标格时,SAN 会在棋子字母后直接加上出发点标识。根据《FIDE 规则》附录 C.10 及 PGN 标准,消歧遵循严格的三步优先级规则:
- **优先使用出发直线:**如果这两个棋子位于不同的直线上,标明出发直线。
- **其次使用出发横线:**如果这两个棋子位于同一条直线上,标明出发横线。
- **同时标明直线和横线:**仅在罕见的多棋子局面中,单靠直线或横线均无法消除歧义时才需要。
情况 1:按直线消歧(Nbd2 对比 Nfd2)
在开局 1. e4 e5 2. Nf3 Nc6 3. d3 d6 之后的局面中,白方在 b1 和 f3 各有一个马。两匹马都能合法跳到 d2。因为它们位于不同的直线(b 线和 f 线),所以使用出发直线来消除歧义:
8 . . . . . . . .
7 . . . . . . . .
6 . . . . . . . .
5 . . . . . . . .
4 . . . . . . . .
3 . . . . . N . . <-- Knight on f3 (moves to d2: Nfd2)
2 . . . [X] . . . . <-- Target square d2
1 . N . . . . . . <-- Knight on b1 (moves to d2: Nbd2)
a b c d e f g h
- b1 上的马走到 d2:
Nbd2 - f3 上的马走到 d2:
Nfd2
一个真实的例子出自 1858 年歌剧院之局(保罗·摩菲 对阵 布伦瑞克公爵卡尔与伊苏阿尔伯爵)的第 11 回合:

在白方走出 11. Bxb5+ 后,黑方的王被将军。黑方可以用马在 d7 垫子,但位于 b8 的马和位于 f6 的马都能合法走到该格。由于双马位于不同的直线(b 与 f),《FIDE 规则》附录 C.10 要求标明出发直线:黑方走出 11... Nbd7。
情况 2:按横线消歧(R1e2 对比 R7e2)
当两个相同的棋子位于同一条直线上时,指明直线(Ree2)仍无法区分这两个车。此时改为使用横线数字:
8 . . . . . . . .
7 . . . . R . . . <-- Rook on e7 (moves to e2: R7e2)
6 . . . . . . . .
5 . . . . . . . .
4 . . . . . . . .
3 . . . . . . . .
2 . . . . [X] . . . <-- Target square e2
1 . . . . R . . . <-- Rook on e1 (moves to e2: R1e2)
a b c d e f g h
- e1 上的车走到 e2:
R1e2 - e7 上的车走到 e2:
R7e2
情况 3:三子规则(Qa1e5)
一个常见的误解是,位于对角线格子上的两个后或两个车需要同时标明两个坐标(如 Qh4e1)。在 SAN 规则下,只要恰好有两个相同的棋子可以走到同一格,它们在直线或横线上必然有所不同:如果它们的直线不同,则必须标明直线;如果它们的直线相同,则必须标明横线。
只有当三个或更多相同棋子(通过兵升变产生)能够走到同一格,导致单个坐标标识仍存在歧义时,才必须同时注明直线和横线:
8 . . . . . . . .
7 . . . . . . . .
6 . . . . . . . .
5 Q . . . [X] . . . <-- Queen on a5 (moves to e5: Q5e5)
4 . . . . . . . .
3 . . . . . . . .
2 . . . . . . . .
1 Q . . . Q . . . <-- Queen on e1 (Qee5) / Queen on a1 (Qa1e5)
a b c d e f g h
假设白方在 a1、a5 和 e1 各有一个后,且都能无阻挡地走到 e5:
- 位于 a5 的后沿第 5 横线移动:写
Qae5是行不通的(因为 a1 上的后也在 a 线上),但写Q5e5能唯一定位它,因为没有其他的后位于第 5 横线。 - 位于 e1 的后沿 e 线移动:写
Q1e5是行不通的(因为 a1 上的后也在第 1 横线上),但写Qee5能唯一定位它,因为没有其他的后位于 e 线。 - 位于 a1 的后斜向移动到 e5:写
Qae5会与 a5 上的后产生歧义,写Q1e5会与 e1 上的后产生歧义。单独使用直线或横线都无法消除歧义。因此,必须同时给出出发点的两个坐标:Qa1e5。
实战练习:测试你的记谱水平
通过以下三个标准场景,检验你对 SAN 记谱法和消歧规则的理解:
练习 1:双马出子
- **局面:**白方双马分别位于 b1 和 f3;白兵位于 d3 和 e4。白方将 f3 上的马走到 d2。
- **挑战:**这一步着法在 SAN 中如何书写?
- 答案:
Nfd2。双马均能合法走到 d2。因为它们位于不同的直线(b和f),SAN 要求标明出发直线。
练习 2:开放线上的双车
- **局面:**白方双车在开放的 e 线上分别占据 e1 和 e8。白方将 e1 上的车向前平移至 e4。
- **挑战:**这一步着法在 SAN 中如何书写?
- 答案:
R1e4。双车都在 e 线上。写Re4存在歧义,而写Ree4行不通,因为双车同在 e 线。标明出发横线即可确定该着法为R1e4。
练习 3:吃过路兵
- **局面:**白方在 e5 有一个挺进的高位兵。黑方走出
d7-d5。白方在下一回合吃过路兵。 - **挑战:**白方的这次吃子在严格的 SAN 中如何书写?
- 答案:
exd6。吃过路兵记录出发直线(e)、吃子符号(x)以及兵最终落子的目标格(d6)。
记谱单手写易错点与基于规则合法性的修正
在锦标赛的时间压力下,纸质记谱单往往书写仓促,从而导致一些可预见的记录错误。当将记谱单导入数字数据库或回放着法时,软件会依据国际象棋规则的合法性来识别并纠正模糊不清的笔迹:
| 手写字迹 | 常见误读 | 实际着法 | 合法性校验引擎如何纠正错误 |
|---|---|---|---|
Bc4(字圈紧缩) | 8c4 或 13c4 | Bc4 | SAN 中的着法词元不能以数字开头。通过跟踪棋盘状态(FEN)可以发现 f1 处有白象能走到 c4,而棋盘上根本不存在名为“8”的棋子。 |
b6(升笔过长) | h6 或 66 | b6 | 两个横线数字(66)违反 SAN 语法。若黑方在 b7 有兵,则 b6 合法;若 h7 为空或通往 h6 的路径受阻,引擎便会排除 h6 并验证 b6。 |
Ke2(提笔仓促) | Re2 | Ke2(或 Re2) | 在时间压力下,草写的 K 往往形似 R。引擎会检查 e2 是否受到攻击(若受攻击则禁止动王),或者是否只有一个棋子能合法走到该格。 |
0-0 / 0-0-0(纸上记法) | 数字 PGN 中的数字零 | O-O / O-O-O | FIDE 官方的纸质记谱使用数字零(0-0 和 0-0-0),但数字 PGN 规范要求使用大写字母 O-O 和 O-O-O。在我们 2026-09-30 的测试中,Lichess、Chess.com 以及 ScanChess 验证工具均支持并接受了 0-0-0。 |
xd4 或 d4 | 单纯挺兵 | exd4(或 cxd4) | 若 d4 上已有棋子,单纯的挺兵 d4 是非法的。引擎会检查相邻直线上 c5 或 e5 是否有己方兵,从而重构出缺失的出发直线。 |
如需全面了解记谱单错误以及如何在比赛轮次中避免失误,请参阅国际象棋记谱常见错误。
真实记谱单实例:一份 1973 年的德国记谱单
为了在纸上直观了解这些惯例,我们抄录了一份 1973 年柏林跨年锦标赛(Berliner Silvesterturnier 1973)第 1 轮尤利亚娜·洪德(Juliane Hund)对阵芬肯策勒(Finkenzeller)的真实记谱单:

根据《FIDE 规则》附录 C.3,棋手可以使用其本国通用的棋子字母在纸上记录着法。在这张德国记谱单中,棋手使用了德语棋子字母:
- S = Springer(马 / Knight)
- L = Läufer(象 / Bishop)
- T = Turm(车 / Rook)
- D = Dame(后 / Queen)
- K = König(王 / King)
这张单子上的吃子是在着法后加冒号(:)而非 x(例如,cd5: 表示 cxd5,Tc6: 表示 Rxc6)。易位使用数字零记为 0-0。此外,手写笔迹还带有特定的草写特征:字母 b 的升笔带圈,形似 l 或 f(例如 Db3 和 Lb7);在第 15 回合(15... Ld6),修改的笔迹直接涂写在字母 d 上。在第 23 回合白方走出 23. Tc7 之后,黑方一栏手写了德语“认输”(aufgegeben)的缩写,而不是着法。
以下是该记谱单第 11 至 17 行对应标准 SAN 的逐步对照翻译:
| 回合 # | 原始德语记录 | SAN 翻译 | 细节说明 |
|---|---|---|---|
| 11 | Sb5: / ab5: | 11. Nxb5 axb5 | 马吃 b5 格的子(Sb5:);兵回吃并带有冒号吃子标记(ab5:) |
| 12 | Tc6: / Se8 | 12. Rxc6 Ne8 | 车吃 c6 上的马(Tc6:);黑方马退回 e8(Se8) |
| 13 | Db3 / Lb7 | 13. Qb3 Bb7 | 后到 b3(Db3);象出子到 b7(Lb7);手写 b 带有环状升笔 |
| 14 | Tc2 / Db6 | 14. Rc2 Qb6 | 车到 c2(Tc2);后出子到 b6(Db6) |
| 15 | Tfc1 / Ld6 | 15. Rfc1 Bd6 | 双车按直线消歧(Tfc1);象出子到 d6,并在字母 d 上直接涂改 |
| 16 | Ld2 / Sf6 | 16. Bd2 Nf6 | 象退到 d2(Ld2);马重新进到 f6(Sf6) |
| 17 | Lb4 / Lb4: | 17. Bb4 Bxb4 | 象走到 b4(Lb4);象吃子并带冒号(Lb4:) |
我们将这局棋全部 23 回合转录到 python-chess 中,确认每一步着法均合法:
1. c4 Nf6 2. Nc3 c6 3. g3 d5 4. cxd5 cxd5 5. Bg2 e6 6. d4 Be7 7. Nf3 Nc6 8. O-O O-O 9. Bf4 a6 10. Rc1 b5 11. Nxb5 axb5 12. Rxc6 Ne8 13. Qb3 Bb7 14. Rc2 Qb6 15. Rfc1 Bd6 16. Bd2 Nf6 17. Bb4 Bxb4 18. Qxb4 Nd7 19. a3 Rfc8 20. Nd2 Rxc2 21. Rxc2 Ra4 22. Qe7 Nf8 23. Rc7 1-0
解析器如何处理德语记谱
当未经翻译转换的德语记谱被导入数字国际象棋软件时,解析器会解析失败,因为 PGN 规范要求使用英文棋子字母:
- **ScanChess PGN 验证器:**在 PGN 验证器中,直接输入德语记谱字面量(
1. c4 Sf6 2. Sc3 ...)会得到“1... Sf6 为非法着法”的提示,因为验证器不会翻译德语棋子字母。 - **Lichess:*将
1. c4 Sf6 2. Sc3 c6 ...粘贴到 Lichess 会返回:"PGN error: Can't play c3 at move 2, ply 3"*(PGN 错误:在第 2 回合第 3 个半回合无法走 c3)。Lichess 本身并没有针对Sf6报错。该错误指出了第 2 回合的 c3,这表明它将1... Sf6读作挺兵 f6,并将2. Sc3读作挺兵 c3,而这是不可能的,因为 c 兵已经在 c4 了。因此,未翻译的外语棋子字母可能会导致错误提示比实际出错点延后一个回合触发。
SAN、LAN、UCI 与描述记谱法对比
虽然 SAN 是标准的人类可读格式,但国际象棋软件和历史棋书中还会使用其他记谱系统:
- **标准代数记谱法(Standard Algebraic Notation,SAN):**本指南通篇介绍的简洁格式(
Nf3、exd5、O-O)。它是 FIDE 的官方体系,也是 PGN 文件中的标准着法格式。 - **完整代数记谱法(Long Algebraic Notation,LAN):**完整拼写出由连字符或吃子标记分隔的起始格与目标格(
Ng1-f3、e2-e4、Bf1xe5)。虽然较为冗长,但 LAN 消除了歧义问题,在初学者习题册中依然很常见。 - **通用国际象棋接口(Universal Chess Interface,UCI):**国际象棋引擎(如 Stockfish)用于传递着法的坐标格式:
g1f3、e2e4、e7e8q。UCI 省略了棋子名称、吃子标记、将军符号以及易位字母(如e1g1)。 - **描述记谱法(Descriptive Notation):**1980 年以前在英语世界占主导地位的记谱法,以棋子所在的直线从双方棋手的各自视角为格子命名(
1. P-K4 P-K4 2. N-KB3 N-QB3)。古旧棋书中的着法需要先翻译为 SAN,软件才能读取。
如果导入的着法序列无法在你的软件中回放,请将文本粘贴到 PGN 验证器中,以标出第一个语法无效或非法的着法。若想将老旧棋书的内容映射为现代代数格式,请参阅描述记谱法与代数记谱法。用德语、法语等本国棋子字母写的着法,先用国际象棋记谱翻译器转成英文 SAN;描述记谱法的棋书,用描述记谱法转代数记谱法工具逐步转换。
实操范例:西班牙开局
以下是用 SAN 记录的著名开局——西班牙开局(Ruy Lopez)的前五个回合:
1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O
逐步解读:白方挺兵至 e4,黑方同样走 e5 对称应答;白方出马至 f3,黑方出马至 c6 应答;白方出象到 b5(西班牙开局),黑方走 a6 问象;象后退至 a4,黑方出马到 f6,白方王翼易位。稍加练习,你就能像读书读字一样流畅地阅读这些记谱。
更多国际象棋记谱内容
以下每篇文章都更深入地探讨了该主题的某个部分:
- 着法后面的符号,如
!、?!和??:国际象棋符号与评注。 - 老棋书中以 P-K4 书写的内容:描述记谱法与代数记谱法。
- 在对局中记录着法:如何填写国际象棋记谱单、官方的 FIDE 记谱单规则,以及用于解读他人笔迹的如何看懂国际象棋记谱单。
- 文件中的记谱格式:记录整盘对局请看 PGN 是什么,记录单个局面请看 FEN 是什么。
记谱法也是扫描工具读取的语言
标准代数记谱法是记谱单扫描工具所预期的语言,因此一份书写清晰规范的 SAN 记谱单能带来极佳的识别效果。ScanChess 可以拍摄手写记谱单照片,并将这些 SAN 着法转换返回为 PGN,且每一步着法都会在棋盘上回放以检验其合法性。Chessvision.ai 这类棋图识别工具解决的是另一个问题:把印刷或屏幕上的局面转成 FEN;两者的区别见 Chessvision.ai 与 ScanChess 对比。如果你即将参加锦标赛需要新的空白记谱单,也可以下载可打印记谱单。
