买机票时,票面上印着三个字母的机场代码——LHR、CDG、JFK。同一架飞机落地后,驾驶舱导航屏幕上显示的却是四个字母——EGLL、LFPG、KJFK。这不是两套针对不同机场的系统,而是同一个地方并行使用的两套代码。

一套给乘客和订票系统用(IATA),另一套给飞行员、空管和气象报告用(ICAO)。

下面说清楚这两套代码的区别,以及为什么要同时存在。

一个机场两套代码,不是搞错了

伊斯坦布尔机场有IATA代码 IST,也有ICAO代码 LTFM。两个代码指的是同一栋航站楼,只是用在不同场合。IST出现在你的机票和航班信息屏上,LTFM只有飞行员、空管员和气象人员才会用到。

普通旅客有时会在气象报告或航班追踪服务里撞见四字母代码,完全不知道是哪个机场。其实还是同一个IST,只是换了一套标准写法而已。

IATA是什么

IATA(International Air Transport Association,国际航空运输协会)是航空公司自己的行业组织,成立于1945年。IATA负责航空业的商业运营——票价、航班时刻、订票系统、机票销售。你机票上那三个字母的机场代码,就是它的产物。

ICAO是什么

ICAO(International Civil Aviation Organization,国际民用航空组织)是联合国下属的专门机构,1944年在芝加哥成立。它负责航空业的技术与监管层面——飞行安全、空中交通标准、空域使用规则。飞行员和空管员日常用的就是这套体系。

IATA——乘客看到的三个字母

这套代码的出现纯属实际需要。统一之前,每家航空公司用自己的缩写——有的两个字母,有的三个,有的直接写城市全名。哪怕是旅行社,给旅客订一张经停两次、跨三家航司的机票都是一件麻烦事。

1930年代,美国气象站用两字母机场代码——电报传输贵,每个字符都要省。后来商业航空规模扩大,机场数量超过了两字母的组合上限。两个字母最多676种组合,三个字母能有17576种,于是改成三字母。

大多数IATA代码看着就能猜出来——HAV是哈瓦那,BKK是曼谷,MAD是马德里。一部分城市的代码取的是名称首字母,另一部分沿用了早期气象站代码,再加第三个字母来保证唯一性。洛杉矶就这么变成了LAX(LA加一个凑数的X),波特兰是PDX,菲尼克斯是PHX。这些代码里的X没有任何含义,就是个占位符。

ICAO——管理者使用的四个字母

ICAO的编码逻辑完全不同。四个字母代替三个,而且有严格的地理规律——第一个字母代表全球大区,第二个字母代表国家,后两个字母代表具体机场。

拿土耳其举例,一眼就看明白了。前缀LT,所有土耳其机场都以此开头——LTFM(新伊斯坦布尔机场)、LTBA(阿塔图尔克机场,已关闭)、LTAI(安塔利亚)、LTAC(安卡拉)。英国的前缀是EG——EGLL(希思罗)、EGKK(盖特威克)、EGCC(曼彻斯特)。法国是LF,LFPG就是戴高乐,LFPO就是奥利。

美国用的是简化方案。在IATA代码前面加一个前缀K,后面直接跟原来的三字母代码——比如KJFK、KLAX、KORD、KSFO。这样设计是有意为之,让美国飞行员不用为同一个机场记两套不同字母。

欧洲用的是地理方案。第一个字母代表大区,第二个字母代表区内的国家,后两个字母代表具体机场。欧洲大陆主要分在E区(英国、北欧、德国、波兰)和L区(法国、意大利、西班牙、捷克、奥地利、巴尔干、土耳其)两个区域之间。所以在欧洲,ICAO代码和IATA代码大多数情况下对不上。捷克是LK,布拉格是LKPR;奥地利是LO,维也纳是LOWW;波兰是EP,华沙是EPWA。看前两个字母就知道是哪个国家,对飞行员来说很实用——飞国际航线,每天都要看这些国家代码。

Niko

在驾驶舱里我只用ICAO。飞行计划、气象报告、NOTAM——全是四字母代码。IATA只用来确认要把乘客送到哪里。我跟空管说”前往LTFM”,大家都明白。如果说IST,可能会有人愣一下——三年前这个代码对应的还是另一个机场。
Niko
· Boeing 777飞行员,利用经停间隙探索各地城市

两套代码各自用在哪里

IATA(3个字母)
  • 机票和登机牌
  • 订票网站
  • 出发、到达航班显示屏
  • 行李标签
  • 乘客值机系统
  • 航空公司手机App
ICAO(4个字母)
  • 飞行计划(Flight Plan)
  • 机组与空管的通讯
  • METAR和TAF气象报告
  • NOTAM(飞行员通告)
  • 航图和航空数据库
  • 航空软件(ForeFlight、Jeppesen)

简单说——作为乘客,你只需要IATA代码

ICAO代码只在两种情况下会遇到:一是你是飞行员,二是你在专业航班追踪服务里查某个航班的技术细节。

两套代码什么时候一致,什么时候对不上

美国几乎是唯一一个系统透明的地方。IATA是JFK,ICAO是KJFK,前面加个K就行了。几乎所有有固定代码的美国机场都这么处理。

英国是另一套逻辑。希思罗的IATA代码是LHR,ICAO代码是EGLL。EG代表英国,LL代表希思罗,和LHR这三个字母毫无关联。盖特威克(LGW对应EGKK)和其他英国机场都是同样的情况。

法兰克福更直观。IATA代码是FRA,ICAO代码是EDDF。EDDF可以读作德国(ED)加法兰克福(DF),有内在逻辑,但从外面看完全不明显。

军事基地和小型私人机场通常只有ICAO代码,没有IATA代码。IATA只给有商业客运航班的机场分配代码。英国莱肯希斯空军基地(RAF Lakenheath)的ICAO代码是EGUL,没有IATA代码。伦敦附近的比金山机场(Biggin Hill)有ICAO代码EGKB,技术上也有IATA代码BQH,但大多数订票系统里根本查不到它。

改名与代码重新分配

2019年4月,伊斯坦布尔新机场正式启用。IATA代码IST从老阿塔图尔克机场转给了新建的Istanbul Airport,阿塔图尔克机场获得临时代码ISL,随后对旅客关闭。这是IATA固定代码被重新分配的罕见案例。如果你要查”旧IST”的历史航班数据,记住2019年4月之前这个代码对应的完全是另一个机场。ICAO没有这种混乱——阿塔图尔克始终是LTBA,新伊斯坦布尔机场是LTFM,从未变过。

一座城市有多个机场

伦敦有六个机场,每个都有独立的IATA代码——LHR(希思罗)、LGW(盖特威克)、STN(斯坦斯特德)、LTN(卢顿)、LCY(伦敦城市机场)、SEN(绍森德)。此外还有一个汇总代码LON,搜索引擎在你搜”飞伦敦”但没指定具体机场时会用到它。

巴黎也一样——汇总代码PAR覆盖CDG(戴高乐)、ORY(奥利)和BVA(博韦-梯利埃)。纽约用NYC汇总JFK、LGA和EWR。伊斯坦布尔有IST(新机场)和SAW(亚洲侧的萨比哈·格克琴机场),没有城市汇总代码,订票时有时会搞混。

城市汇总代码是IATA的发明,ICAO根本没有这个概念。ICAO只针对具体机场,不针对城市——飞行员落地要的是具体跑道,”大概在伦敦某个地方”根本没法用。

实际会遇到的几种情况

订机票时看到”IST – LHR”

这是IATA代码。IST是2018年开放的新Istanbul Airport,距伊斯坦布尔市中心西北方向约35公里。LHR是希思罗。乘客需要知道的信息都在这里了,不需要再查别的。

查某个机场的METAR天气报告

METAR永远以ICAO代码开头。”METAR LTFM 121150Z……”说的是Istanbul Airport的天气。很多显示机场天气的网站只接受ICAO代码,输入IST会直接报错。

在线追踪航班

航班追踪器看飞行中的航班时,航班卡片里会同时出现两套代码——航空公司和航班号用IATA代码(比如TK1980),出发地和目的地机场用ICAO代码。两种格式通常都会显示。

查一个小城市的机场

没有商业航班的机场就没有IATA代码。英国萨福克郡的莱肯希斯皇家空军基地ICAO代码是EGUL,没有IATA代码。如果在机票搜索里按城市名搜不到结果,大概率是这个机场没有IATA代码,或者你搜的方向不对。

ICAO代码对旅行者来说没什么用的情况

说实话,99%的人这辈子都不会碰到ICAO代码。如果你只是普通旅客,对航空的了解止步于机票,也不追踪航班动态,那完全没必要记四字母代码。所有App、航班显示屏和订票系统都走IATA那套,够用一辈子。IATA代码永远印在你的机票或行程单上。

ICAO在三种情况下有用:

  • 第一——你喜欢用航班追踪器看飞机在哪里飞(航班卡片里能看到ICAO代码)。
  • 第二——你在欧洲计划飞小型飞机(任何登记注册都要用四字母代码)。
  • 第三——你就是想比普通乘客更深一层地了解航空体系。

以上都不是你的情况的话,看完这篇就把ICAO忘掉吧。

机票上的IATA代码,任何旅行都够用了。

常用机场代码对照表

机场 IATA ICAO ICAO逻辑
伊斯坦布尔机场 IST LTFM LT = 土耳其,FM = 机场
希思罗,伦敦 LHR EGLL EG = 英国
JFK,纽约 JFK KJFK K = 美国 + IATA代码
戴高乐,巴黎 CDG LFPG LF = 法国
法兰克福 FRA EDDF ED = 德国
何塞·马蒂,哈瓦那 HAV MUHA MU = 古巴
迪拜(主机场) DXB OMDB OM = 阿联酋
樟宜,新加坡 SIN WSSS WS = 新加坡
史基浦,阿姆斯特丹 AMS EHAM EH = 荷兰
羽田,东京 HND RJTT RJ = 日本

常见问题

IATA只给有商业客运航班的机场分配代码。军事基地、私人机场和没有客运业务的货运站只有ICAO代码。全球大约有9000个IATA代码,超过4万个ICAO代码——差距就在这里。

很少,但有可能。2019年伊斯坦布尔就是典型案例:代码IST从阿塔图尔克机场转给了新的Istanbul Airport。这种情况发生在城市主机场整体迁移时。IATA通常尽量不改已有的代码,因为一改就会破坏历史订票数据库,留下一堆历史档案里的混乱。

城市代码(metropolitan area code)是IATA的汇总代码,把同一座城市的所有机场合并在一起。LON包含LHR、LGW、STN、LTN、LCY和SEN;PAR包含CDG、ORY和BVA;NYC包含JFK、LGA和EWR。用城市代码搜机票,系统会同时显示该城市所有机场的航班。

第一个字母代表大区:E是北欧,L是南欧和地中海,K是美国,Z是中国,Y是澳大利亚,F是撒哈拉以南非洲。第二个字母细化到国家。完整前缀列表在ICAO Doc 7910文件和icao.int官网上都能找到。最快的办法是直接把代码扔进ourairports.com搜一下。

IATA从商业订票系统发展而来,全球几千个客运机场,三个字母够用。ICAO覆盖整个民用航空体系,包括3万多个小型机场和军事基地。这个体量下,三个字母最多17576种组合,不够分;四个字母有456976种,够了。