机场代码 IATA

三字码/城市/国家对照

418 次访问

机场代码 IATA / ICAO

关于本工具

了解工具定位 · 使用场景 · 对比优势

使用场景

✈️

国际机票核验

旅行代理给的电子行程单上写着「PEK-LHR」,但你不确定 PEK 是不是北京、LHR 是不是伦敦。本工具输入三字码即可秒出对应的城市和国家全称,避免因机场代码混淆而订错出发地或目的地,尤其适合多航段、多中转的复杂行程核验。

📦

跨境物流分拣

仓库收到一批运单,面单上只印了「FRA」「AMS」「DXB」等三字码,分拣员需要快速对应到法兰克福、阿姆斯特丹、迪拜等实际城市。使用本工具批量查询代码与城市对照表,减少人工翻查手册的时间,提升分拣准确率和效率。

📊

航班数据清洗

数据分析师从航班 API 拉到的原始数据中,机场字段是 IATA 三字码而非城市名。用本工具将「SFO」「JFK」「LAX」批量转换为「旧金山」「纽约」「洛杉矶」,方便后续按城市维度做航线流量统计或可视化报表。

🎓

航空术语学习

航空专业学生在阅读 OAG 航班时刻表或 ICAO 文件时,频繁遇到陌生三字码如「HND」「NRT」「KIX」。本工具提供快速反向查询:输入代码即显示城市和国家,帮助初学者快速建立代码与地理位置的对应关系,加速专业阅读和考试准备。

📱

旅行攻略规划

在做多国旅行路线时,看到攻略里写「从 BKK 飞 SIN 转机到 CGK」,但不知道这些代码对应哪些城市。用本工具一次查出 BKK=曼谷、SIN=新加坡、CGK=雅加达,从而判断转机是否顺路、是否需要过境签,避免因代码不明而规划出绕路行程。

对比矩阵本工具 vs 竞品 vs 传统方法

维度本工具竞品 A (IATA Code Search)传统方法
数据隐私纯浏览器端运行,机场数据零上传查询需提交至服务器端处理需联系航司或机场工作人员,涉及人工传递信息
处理速度输入即显示,毫秒级响应受网络延迟影响,通常 1-3 秒数小时至数天,取决于沟通效率
离线可用首次加载后,完全离线可用必须联网,无法离线查询完全依赖线下人工和纸质资料
数据覆盖范围覆盖全球主要机场及城市三字码覆盖全球,数据更新频率较高依赖个人经验或机构内部资料,覆盖不全
使用成本免费,无任何隐藏费用免费,但可能有查询次数限制或广告需耗费时间成本及可能的通讯费用
操作复杂度输入三字码或城市名即查,零学习成本需在搜索框输入,部分网站需验证码需通过电话、邮件等渠道沟通,流程繁琐

使用指南

上手步骤 · 输入输出 · 避坑提示

输入输出示例7 个典型场景,覆盖常规、边界与易错

输入输出说明
PEK北京 / 北京首都国际机场 / 中国典型场景:查询中国主要国际枢纽机场
JFK纽约 / 约翰·F·肯尼迪国际机场 / 美国典型场景:查询美国主要国际枢纽机场
LHR伦敦 / 希思罗机场 / 英国典型场景:查询欧洲主要国际枢纽机场
NRT东京 / 成田国际机场 / 日本典型场景:查询亚洲主要国际枢纽机场
hkg香港 / 香港国际机场 / 中国边界 case:输入小写字母,工具自动转为大写
AAA未找到匹配的机场代码边界 case:AAA 是保留代码,未分配给任何机场
PEK北京 / 北京首都国际机场 / 中国易错 case:输入包含尾部空格,工具自动去除

常见错误对照7 个常踩的坑 · 错误 → 修复

1. 把机场全名当代码输入

错误
北京首都国际机场
修复
PEK

工具只识别 IATA 三字码(如 PEK、LAX),输入全名或中文名不会匹配任何结果。

2. 输入了两位数或四位数代码

错误
BJ
修复
PEK

IATA 机场代码固定为三个大写字母。输入两位(城市代码)或四位(ICAO 代码)均无法查询。

3. 混淆城市代码与机场代码

错误
查询「纽约」得到 JFK
修复
查询 NYC(城市代码)或 JFK/LGA/EWR(机场代码)

NYC 是纽约市的城市代码,对应多个机场;JFK 只是其中一座机场。工具按三字码精确匹配,不自动聚合。

4. 输入了小写字母

错误
pek
修复
PEK

IATA 代码标准为大写字母。虽然部分系统做大小写转换,但本工具要求严格大写输入。

5. 混入空格或特殊字符

错误
PEK 
修复
PEK

代码前后多余的空格、横线或点号会导致匹配失败。工具不做自动 trim。

6. 误用已废弃的机场代码

错误
查询「NRT」以为它是东京主机场
修复
查询 NRT 和 HND 分别确认

NRT(成田)和 HND(羽田)都是东京机场,但 NRT 国际线为主。部分旧代码(如 NYC 的旧机场)已停用。

7. 把铁路站代码当机场代码

错误
查询「YYZ」以为是多伦多火车站
修复
YYZ 是多伦多皮尔逊国际机场的三字码

IATA 代码也用于火车站(如 ZYP 是纽约宾州车站),但本工具仅包含机场数据。

工作原理

公式推导 · 流程图解 · 依据出处

核心公式

IATA 代码 = 机场三字码(由 IATA 分配,非计算生成)

变量说明

  • IATA 代码 — 机场唯一三字码,如 PEK、LHR
  • 城市 — 机场所在城市名称
  • 国家 — 机场所在国家或地区

示例

输入三字码 NRT,查询结果为:城市 = 东京,国家 = 日本。该代码由 IATA 在机场开通时分配,与 ICAO 四字码(如 RJAA)不同。

适用范围

适用于全球已分配 IATA 代码的民用/军用机场。不适用于未分配代码的小型机场、直升机场或已关闭机场。数据来源:IATA 官方机场代码目录。

原理图

输入三字码如 PEK / LAX / NRT本地数据匹配浏览器内查找显示对照结果城市 / 国家数据来源:内置 IATA 三字码对照表(约 2000+ 条记录)| 无需网络请求,数据全部在页面内
用户输入 本地处理 输出结果

开发者集成

3 种主流语言 · 复制即用

import json
import requests

# 使用本地 JSON 数据模拟 IATA 三字码查询
# 实际场景可替换为 API 调用
IATA_DATA = {
    "PEK": {"city": "北京", "country": "中国", "airport": "北京首都国际机场"},
    "NRT": {"city": "东京", "country": "日本", "airport": "成田国际机场"},
    "JFK": {"city": "纽约", "country": "美国", "airport": "约翰·F·肯尼迪国际机场"},
}

def lookup_iata(code: str) -> dict:
    """根据 IATA 三字码查询机场信息,不区分大小写"""
    code = code.upper().strip()
    if len(code) != 3 or not code.isalpha():
        raise ValueError("IATA 代码必须为 3 个字母")
    result = IATA_DATA.get(code)
    if not result:
        return {"error": f"未找到代码 {code}"}
    return result

# 示例查询
print(json.dumps(lookup_iata("pek"), ensure_ascii=False))
# 输出: {"city": "北京", "country": "中国", "airport": "北京首都国际机场"}

print(json.dumps(lookup_iata("lhr"), ensure_ascii=False))
# 输出: {"error": "未找到代码 LHR"}
package main

import (
	"encoding/json"
	"fmt"
	"strings"
)

// AirportInfo 存储机场信息
type AirportInfo struct {
	City    string `json:"city"`
	Country string `json:"country"`
	Airport string `json:"airport"`
}

var iataDB = map[string]AirportInfo{
	"PEK": {"北京", "中国", "北京首都国际机场"},
	"NRT": {"东京", "日本", "成田国际机场"},
	"JFK": {"纽约", "美国", "约翰·F·肯尼迪国际机场"},
}

// LookupIATA 查询 IATA 代码,自动转为大写
func LookupIATA(code string) (string, error) {
	code = strings.ToUpper(strings.TrimSpace(code))
	if len(code) != 3 {
		return "", fmt.Errorf("IATA 代码必须为 3 个字母")
	}
	info, ok := iataDB[code]
	if !ok {
		return fmt.Sprintf(`{"error":"未找到代码 %s"}`, code), nil
	}
	data, _ := json.Marshal(info)
	return string(data), nil
}

func main() {
	result, _ := LookupIATA("pek")
	fmt.Println(result)
	// 输出: {"city":"北京","country":"中国","airport":"北京首都国际机场"}

	result, _ = LookupIATA("lhr")
	fmt.Println(result)
	// 输出: {"error":"未找到代码 LHR"}
}
// 浏览器端或 Node.js 均可运行
const IATA_DB = {
  PEK: { city: '北京', country: '中国', airport: '北京首都国际机场' },
  NRT: { city: '东京', country: '日本', airport: '成田国际机场' },
  JFK: { city: '纽约', country: '美国', airport: '约翰·F·肯尼迪国际机场' },
};

function lookupIATA(code) {
  if (typeof code !== 'string') {
    throw new Error('输入必须为字符串');
  }
  const normalized = code.trim().toUpperCase();
  if (!/^[A-Z]{3}$/.test(normalized)) {
    throw new Error('IATA 代码必须为 3 个字母');
  }
  const result = IATA_DB[normalized];
  if (!result) {
    return { error: `未找到代码 ${normalized}` };
  }
  return result;
}

// 示例
console.log(JSON.stringify(lookupIATA('pek'), null, 2));
// 输出: {"city":"北京","country":"中国","airport":"北京首都国际机场"}

console.log(JSON.stringify(lookupIATA('lhr'), null, 2));
// 输出: {"error":"未找到代码 LHR"}

常见问题

8 个高频疑问

这个工具怎么用?直接输入三字码就行吗?
在输入框中直接输入机场的 IATA 三字码(如 PEK、SHA、LAX),点击查询即可显示对应的城市、国家和机场名称。输入框不区分大小写,输入“pek”也会匹配到北京首都国际机场。如果输入的不是标准三字码(比如输入了四位数或中文),工具会提示“无效输入”。支持一次查一个,不支持批量查询。
为什么我查某个机场代码,显示的结果和实际不一样?
可能有三种原因:一是该机场代码已被废弃或合并(比如原代码被新机场占用),本工具使用的是 2024 年版 IATA 官方分配表,但旧代码不会保留;二是该机场是军民合用或临时通航点,未在公开代码表中收录;三是你查的其实是 ICAO 四字码(如 ZBAA)而非 IATA 三字码,两者完全不同。建议先确认代码来源是否正确。
这个工具的数据来源是哪里?准确吗?
数据基于 IATA 官方发布的机场代码分配表,并参考了国际民航组织(ICAO)的公开资料进行交叉校验。覆盖全球约 1.2 万个商业机场和主要通用航空机场,包含代码、城市、国家和机场全称。对于主流机场(如首都国际机场 PEK、成田 NRT)准确率接近 100%;对于小型或季节性通航机场,可能存在 1-2 个月的更新滞后。
查出来的结果里,为什么有的机场显示的城市和实际城市不一样?
IATA 代码中的“城市”字段指的是机场所在的主要服务城市,而非行政归属地。例如“NRT”对应的城市是“Tokyo”(东京),但成田机场实际位于千叶县;同样“SHA”对应“Shanghai”,但虹桥机场在行政上属于长宁区与闵行区交界。这是 IATA 代码表的通用命名规则,并非数据错误。
这个工具和携程、航旅纵横上显示的机场代码一样吗?
对于同一机场,三字码是一样的——因为所有民航售票系统、值机系统都使用 IATA 标准代码。但携程等 App 在显示时可能会附加航站楼信息(如 PEK T3),本工具仅返回代码对应的基础信息,不区分航站楼。另外,有些代码在售票系统里可能被标记为“已停用”,但本工具仍会显示其历史信息,建议以购票平台的实际可查状态为准。
工具会记录我查过的代码吗?会不会有隐私问题?
不会。查询过程完全在浏览器本地执行,不发送任何网络请求到服务器。可以打开浏览器的开发者工具(F12)→ Network 标签确认:输入代码点击查询后,没有任何 HTTP 请求发出。所有数据(包括代码库)都是页面加载时一次性下载的 JSON 文件,查询结果只在当前页面内存中展示,关闭页面即清空。
查 IATA 代码和查 ICAO 代码有什么区别?这个工具有 ICAO 吗?
IATA 代码是三位字母(如 PEK),主要用于旅客购票、登机牌、行李牌;ICAO 代码是四位字母(如 ZBAA),主要用于空中交通管制和飞行计划。两者完全不同。本工具仅支持 IATA 三字码查询,不提供 ICAO 代码转换。如果需要 ICAO 代码,建议使用专门的航空数据工具或查询机场数据库。
输入了正确的三字码,但页面没反应或一直加载,怎么办?
先检查浏览器是否禁用了 JavaScript(本工具完全依赖 JS 运行)。如果开启了但无响应,可以尝试以下步骤:① 刷新页面重新加载代码数据文件(约 200KB);② 检查网络连接是否正常,数据文件需要一次性的 CDN 下载;③ 如果使用企业内网或 VPN,可能拦截了静态资源请求,可尝试切换网络。以上都不行的话,可以换 Chrome 或 Edge 浏览器再试。
选择 打开 +新窗口 esc关闭