生活工具 · 国际信息

国家代码 ISO 3166

国家/二字码/三字码/数字码

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 52 次使用
本地查询 · 不联网 · 国家 / 地区
搜索 中文名 / 英文名 / 二字码 / 三字码 / 数字码 / 域名 / 区号
↑↓ 选择 · 回车确认 · 点结果卡上任意码即可复制
大洲浏览browse by continent · 点击国家查看全部代码
使用场景where each code is used · 多套代码并存的原因
🌐国家域名 ccTLD
基于 Alpha-2
.cn / .us / .jp 由 IANA 委派各国注册局管理,绝大多数同 ISO Alpha-2。例外:英国 ccTLD 是 .uk 而非 .gb
🏅奥运 / 世界杯
IOC / FIFA · 3 位字母
奥运用 IOC(如德国 GER,非 DEU),世界杯用 FIFA。英国奥运合并为 GBR,足球却分 ENG / SCO / WAL / NIR 四队。
🛂护照 / 车牌国别
Alpha-3
护照机读区 MRZ、民航订票偏好 3 位字母码(CHN / USA)。车辆国际识别码(旧式椭圆牌)则用独立的 1-3 位拉丁字母(如 D=德国)。
📊数据库 / 联合国统计
Numeric-3
三位数字码(中国 156、美国 840)与联合国 M49 一致。优势:跨字符集兼容、不随国名拼写变更,适合做数据库主键。
📞国际电话区号
ITU E.164(独立体系)
+86 / +1 / +44 由 ITU 分配,独立于 ISO 3166。北美 +1 一个区号覆盖美 / 加 / 多个加勒比地区。
💻软件本地化 Locale
BCP 47(lang-COUNTRY)
zh-CN / en-US / ja-JP 的后半段使用 Alpha-2 大写形式;Unicode CLDR / SWIFT BIC / IBAN 前缀也都基于 Alpha-2。
历史代码ISO 3166-3 · 已停用 / 改名 / 分合

ISO 3166-3 维护已分裂 / 合并 / 改名的历史国家代码,用于解析旧数据库与历史档案。 ISO 规则:废止的代码在 50 年内不再分配给其他国家。

说明 · 诚实标注how it works

· 纯本地查询:所有匹配在浏览器内完成,输入不上传服务器,不写 localStorage。

· 数据来源:ISO 3166/MA 官方代码 + IANA 根区数据库 + IOC / FIFA 成员名录,覆盖 249 个国家 / 地区。

· 规范表述:中国台湾 / 中国香港 / 中国澳门按 ISO 3166 以「地区」身份列于 TW / HK / MO。

就绪 · 输入国名或任意代码即可查询
编码规范ISO 3166 specification
Alpha-2 二字码
两位大写拉丁字母,如 CN US JP。最常用的国家标识,被 ccTLD 域名 / IBAN / SWIFT / Locale 广泛沿用。约 249 个有效代码。
Alpha-3 三字码
三位大写拉丁字母,如 CHN USA JPN。视觉上更接近国名,机器可读护照 MRZ / 民航订票系统偏好。
Numeric 数字码
三位数字(含前导 0),如 156 中国、840 美国、076 巴西。与联合国 M49 一致,跨字符集兼容、不受语言变更影响,适合数据库主键。
ISO 3166-2 区划
一级行政区 = Alpha-2 + - + 1~3 位,如 CN-BJ 北京、US-CA 加州。
ISO 3166-3 历史
已停用国家的 4 位字母码,如 SUHH(苏联)CSHH(捷克斯洛伐克)。前 2 位为原 Alpha-2,后 2 位标识接续状态。
IOC vs Alpha-3
国际奥委会 3 位码多数同 Alpha-3,但有差异:德国 IOC=GER(Alpha-3 是 DEU)、荷兰 NED(NLD)、瑞士 SUI(CHE)。
推荐用法
无特殊要求优先 Alpha-2(最普遍);数据库主键用 Numeric(稳定且短);面向阅读用 Alpha-3(直观)。同一字段务必固定一套,禁止混用
相关工具related tools
常见问题FAQ
Alpha-2、Alpha-3、Numeric 三种码到底该用哪个?
看场景:Alpha-2(如 CN)最普遍,用于域名、地址、Locale;Alpha-3CHN)更直观,用于护照、民航;Numeric156)跨字符集稳定,适合数据库主键和联合国统计。三者一一对应,可互相换算,但同一字段必须固定一套,不可混用。
为什么奥运代码和 ISO 代码不一样(德国 GER vs DEU)?
奥运用的是国际奥委会(IOC)自己维护的代码,世界杯用国际足联(FIFA)代码,两者都独立于 ISO 3166。多数情况下三者相同,但有差异:德国 ISO Alpha-3 是 DEU、IOC/FIFA 却是 GER;荷兰 NLD vs NED;瑞士 CHE vs SUI。英国更特殊——奥运合并为 GBR,足球分 ENG/SCO/WAL/NIR 四支独立队。
国家域名(.cn / .uk)就是 ISO 二字码吗?
绝大多数相同:.cn=CN、.jp=JP、.us=US。最著名的例外是英国——ISO Alpha-2 是 GB,但 ccTLD 用历史遗留的 .uk(.gb 虽保留却几乎不用)。此外欧盟有 .eu 这类非国家顶级域。ccTLD 由 IANA 根据 ISO 3166-1 列表委派,国名变更会触发域名调整。
国际电话区号(+86)和国家代码是一回事吗?
不是。电话区号由 ITU-T E.164 分配,与 ISO 3166 是两套平行体系。一个电话区号可覆盖多国:北美 +1 同时是美国、加拿大及多个加勒比地区的区号;俄罗斯和哈萨克斯坦共用 +7。本工具的「区号」一栏仅供参考对照。
中国台湾 / 香港 / 澳门在 ISO 3166 里怎么列?
ISO 3166-1 以「地区(territory)」身份单列:中国台湾 TW / TWN / 158、中国香港 HK / HKG / 344、中国澳门 MO / MAC / 446。本工具采用「中国台湾 / 中国香港 / 中国澳门」的规范中文表述。它们各自有独立的 ccTLD(.tw / .hk / .mo)与电话区号。
已经消失的国家(苏联、南斯拉夫)还能查到代码吗?
能。ISO 3166-3 专门保存历史代码,见上方「历史代码」区:苏联 SUHH、捷克斯洛伐克 CSHH、南斯拉夫 YUCS 等。规则是废止的代码 50 年内不再分配给其他国家,避免老数据歧义。这些代码在迁移历史档案、解析旧数据库时仍有用。
第一节

关于本工具

About

对接支付接口时,国家代码字段填错一个字母,整笔交易就可能被银行退回。查 ISO 3166 标准,输入中文名或二字码,即时返回对应的二字码、三字码和数字码。数据来自国际标准,不依赖任何后端查询——输入和匹配全在本地浏览器完成,不把国家信息发到任何服务器。

使用场景

海外仓发货地校验

跨境电商运营给德国仓库发货,系统要求填ISO二字码。手边只有国家中文名和数字代码,怕填错导致面单无效。本工具支持中文名反查二字码(DE)、三字码(DEU)、数字码(276),三步内完成校验,避免因代码错误导致包裹被退回或清关延误。

API接口字段映射

后端开发对接国际物流API,对方要求国家字段必须传ISO 3166-1 alpha-3三字码。数据库里存的是中文全称,手动翻译容易把“刚果(布)”和“刚果(金)”搞混。用本工具批量查表,一次确认COG(刚果布)和COD(刚果金)的差异,确保接口请求不因国家代码错误而报400。

国际会议签到表制作

会议运营要打印参会者名单,表格需按国家代码排序。手上有50多个国家的参会人,用中文名排序混乱,且现场核对护照时需要字母代码。本工具提供二字码、三字码对照,可直接复制粘贴到Excel,按CN、JP、US等代码排序,打印后安保人员凭护照首页代码快速定位人员来源。

外贸报关单填报

报关员申报出口货物,海关系统要求填写起运国和目的国的数字代码。客户给的是英文国名“Vietnam”,不确定数字码是704还是268(那是缅甸)。用本工具输入英文名反查,确认越南数字码为704,避免因代码填错导致报关单被退单,延误船期产生滞箱费。

多语言网站国家下拉菜单

前端开发做国际站注册页,国家选择框需同时显示中文名、英文名和ISO代码。手动整理200多个国家数据容易遗漏或重复(比如“科特迪瓦”和“Côte d'Ivoire”)。本工具提供完整的三字段映射表,直接导出JSON格式,保证下拉菜单与ISO标准一致,用户选中国时后台自动记录CHN。

对比矩阵

维度本工具ISO 在线查询站传统方法(手册/表格)
数据范围覆盖 249 个国家/地区,含常用特殊代码(如 EU、UN)通常仅收录 ISO 3166-1 正式条目受手册出版年份限制,更新滞后
查询速度输入即出,零等待需加载页面、等待服务器响应需翻阅纸质或电子表格,耗时数分钟
离线可用完全离线(纯浏览器实现),无网络也可用必须联网,断网无法使用纸质手册离线可用,但需随身携带
批量查询一次输入多个名称,自动匹配并返回全部代码多数仅支持单条查询需手动逐条查找并记录
数据更新基于 ISO 3166-1 最新版,随工具版本更新依赖维护方更新频率,部分站点数据过时印刷版通常每年或数年更新一次
隐私所有查询在浏览器本地完成,不上传任何数据查询请求发送至服务器,存在日志记录可能完全离线,无隐私风险
第二节

使用指南

Getting Started

使用步骤

  1. 1在搜索框输入国家名称(如「China」或「中国」),下拉列表自动匹配并高亮候选结果
  2. 2点击任一候选条目,右侧卡片立即显示二字码(CN)、三字码(CHN)、数字码(156)
  3. 3点击卡片上的「复制」图标,对应代码自动写入剪贴板,页面出现短暂「已复制」提示
  4. 4切换顶部「按代码查」标签,输入二字码(如 JP)或数字码(392),列表同步过滤出匹配国家

输入输出示例

输入输出说明
中国CN / CHN / 156常规:最常用的国家查询,验证二字码、三字码、数字码三项输出是否完整
美国US / USA / 840常规:另一常见国家,与中国的码值差异明显,便于用户确认工具覆盖范围
日本JP / JPN / 392常规:亚洲发达国家,码值典型,验证三字码非缩写惯用形式(JPN 而非 JAP)
梵蒂冈VA / VAT / 336边界:微型国家,验证工具是否收录领土极小但主权独立的国家
科索沃XK / XKX / 0(或未收录)边界:部分承认的国家,不同标准收录情况不同,暴露工具采用哪版 ISO 3166 及对争议地区的处理策略
英格兰未收录(或 GB-ENG)易错:英格兰不是主权国家,用户常误以为有独立代码,工具应明确提示查英国
台湾TW / TWN / 158易错:政治敏感地区,工具按 ISO 3166-1 标准返回台湾代码,需注意用户预期与标准差异
刚果(金)CD / COD / 180易错:用户常混淆刚果(金)与刚果(布),输入简称时工具需区分,此例验证对括号内简称的解析能力

常见错误对照

1.数字码误用为三位数,忽略前导零

✗ 错误输入 0086 或 86 作为中国数字码
✓ 修复156

ISO 3166-1 数字码固定三位,不足补零。中国是 156,不是 086 或 86。0086 是国际电话区号,非 ISO 标准码。

2.二字码大小写混用,查询无结果

✗ 错误输入 cn 或 Cn 或 CN
✓ 修复CN

ISO 3166-1 alpha-2 规范要求大写字母。多数工具内部做严格匹配,小写或大小写混写直接返回空。

3.三字码与二字码混淆,以为可互换

✗ 错误输入 CHN 查询中国二字码
✓ 修复CN

二字码(alpha-2)和三字码(alpha-3)是独立字段,不能混用。CHN 是中国的三字码,二字码是 CN。

4.使用非主权实体名称,期望返回标准码

✗ 错误输入 英格兰 或 苏格兰 或 香港
✓ 修复GB / CN-HK

ISO 3166-1 仅收录主权国家及部分属地。英格兰无独立码,属 GB。香港有单独条目但编码为 CN-HK(ISO 3166-2)。

5.输入历史国名,以为仍在库中

✗ 错误输入 苏联 或 捷克斯洛伐克 或 东德
✓ 修复RU / CZ+SK / DE

ISO 3166-1 只维护当前有效码。已解体或更名国家(如苏联、南斯拉夫)已移除,需查对应继承国。

6.把国际电话区号当作数字码

✗ 错误输入 1 查询美国数字码
✓ 修复840

数字码是 ISO 分配的 3 位编号(如美国 840),与 ITU-T 电话区号(美国 +1)完全无关,两者体系不同。

7.输入中文别名而非官方简称

✗ 错误输入 荷兰 或 北朝鲜 或 南韩
✓ 修复Netherlands / Korea (Democratic People's Republic of) / Korea (Republic of)

ISO 官方名称使用英文全称或标准简称。荷兰官方名 Netherlands,北朝鲜官方名 Korea (Democratic People's Republic of)。

第三节

工作原理

How It Works

核心公式

ISO 3166-1 标准分配:二字码 → 三字码 → 数字码(无计算,为查表映射)

变量说明

  • 二字码Alpha-2,两位拉丁字母
  • 三字码Alpha-3,三位拉丁字母
  • 数字码三位阿拉伯数字,0–999

示例

中国:二字码 CN → 三字码 CHN → 数字码 156。查 ISO 3166-1 标准表,CN 对应 CHN 和 156,三者一一对应,无算术运算。

国家代码 ISO 3166 查询流程输入国家名称(中文/英文)本地匹配查表(ISO 3166 标准库)输出三种代码(二字/三字/数字)完成数据全程在浏览器内处理,无网络请求用户输入本地处理输出结果
用户输入 本地处理 输出结果
第四节

开发者集成

For Developers

6 种主流语言实现,复制即用:

import pycountry # 查询中国(China)的 ISO 3166 代码 country = pycountry.countries.get(name='China') print(f"Name: {country.name}") print(f"Alpha-2: {country.alpha_2}") # CN print(f"Alpha-3: {country.alpha_3}") # CHN print(f"Numeric: {country.numeric}") # 156 # 通过二字码反向查找 country2 = pycountry.countries.get(alpha_2='US') print(f"\nUS -> {country2.name}") # United States
// 使用 i18n-iso-countries 包(npm install i18n-iso-countries) const countries = require('i18n-iso-countries'); // 注册所有国家数据 countries.registerLocale(require('i18n-iso-countries/langs/en.json')); // 查询中国 console.log('Alpha-2:', countries.getAlpha2Code('China', 'en')); // CN console.log('Alpha-3:', countries.getAlpha3Code('CN', 'en')); // CHN console.log('Numeric:', countries.numericCode('CN')); // 156 // 反向:数字码 840 对应美国 console.log('840 ->', countries.getName('840', 'en')); // United States
package main import ( "fmt" "github.com/tealeg/xlsx/v3" // 实际用硬编码映射,这里用标准库替代 "golang.org/x/text/language" ) func main() { // 使用 golang.org/x/text 内置的国家代码 // 中国 cn := language.MustParse("zh-CN") region, _ := cn.Region() fmt.Printf("Country: China\n") fmt.Printf("Alpha-2: %s\n", region) // CN fmt.Printf("Alpha-3: %s\n", region.ISO3()) // CHN fmt.Printf("Numeric: %s\n", region.ISO3166()) // 156 // 美国 us := language.MustParse("en-US") regionUS, _ := us.Region() fmt.Printf("\nCountry: United States\n") fmt.Printf("Alpha-2: %s\n", regionUS) fmt.Printf("Alpha-3: %s\n", regionUS.ISO3()) fmt.Printf("Numeric: %s\n", regionUS.ISO3166()) }
#!/bin/bash # 使用 curl 调用公开 ISO 3166 API(示例:restcountries.com) # 查询中国 curl -s "https://restcountries.com/v3.1/name/china" | \ jq '.[0] | {name: .name.common, alpha2: .cca2, alpha3: .cca3, numeric: .ccn3}' # 输出示例: # { # "name": "China", # "alpha2": "CN", # "alpha3": "CHN", # "numeric": "156" # } # 通过二字码查询 curl -s "https://restcountries.com/v3.1/alpha/US" | \ jq '.[0] | {name: .name.common, alpha2: .cca2, alpha3: .cca3, numeric: .ccn3}'
import java.util.Locale; public class CountryCodeExample { public static void main(String[] args) { // 中国 Locale cnLocale = new Locale("zh", "CN"); System.out.println("Country: China"); System.out.println("Alpha-2: " + cnLocale.getCountry()); // CN // Java 不直接提供 Alpha-3 和数字码,需手动映射或使用 ICU4J // 这里用硬编码示例 System.out.println("Alpha-3: CHN"); System.out.println("Numeric: 156"); // 美国 Locale usLocale = new Locale("en", "US"); System.out.println("\nCountry: United States"); System.out.println("Alpha-2: " + usLocale.getCountry()); // US System.out.println("Alpha-3: USA"); System.out.println("Numeric: 840"); } }
<?php // 使用 PHP 内置的 Locale 类 $countryCode = 'CN'; // 获取国家名称(英文) $countryName = locale_get_display_region('zh-' . $countryCode, 'en'); echo "Country: $countryName\n"; // China // 二字码 echo "Alpha-2: $countryCode\n"; // CN // 三字码和数字码需要手动映射或使用扩展包 // 这里用关联数组模拟 $isoMap = [ 'CN' => ['alpha3' => 'CHN', 'numeric' => '156'], 'US' => ['alpha3' => 'USA', 'numeric' => '840'], ]; if (isset($isoMap[$countryCode])) { echo "Alpha-3: " . $isoMap[$countryCode]['alpha3'] . "\n"; echo "Numeric: " . $isoMap[$countryCode]['numeric'] . "\n"; } // 反向查找:数字码 156 对应中国 $numericToCode = array_flip(array_column($isoMap, 'numeric')); echo "\n156 -> " . $numericToCode['156']; // CN ?>
第五节

常见问题

Q & A
我查中国的国家代码,用CN还是CHN?这两个有什么区别?

CN 是二字码,CHN 是三字码,都代表中国。ISO 3166-1 标准规定了三种代码:二字码(Alpha-2)用于域名、一般标识;三字码(Alpha-3)用于国际组织、车牌;数字码用于统计。本工具输入任意一种,都会同时显示其余两种,方便你对照使用。日常填表、网站设置一般用 CN;护照、国际快递单据常用 CHN。

为什么有的国家有两个代码,比如英国有GB和UK?

ISO 3166-1 标准里英国的正式二字码是 GB(Great Britain),但 UK(United Kingdom)作为例外保留代码也被广泛使用,尤其在体育赛事和域名(.uk)中。本工具同时收录了 GB 和 UK,输入任意一个都会返回英国的完整信息。如果你遇到其他类似情况,比如俄罗斯的 RU 和 RUS,直接输入你手头的代码即可,工具会自动匹配。

我想查某个地区的代码,但输入后显示没找到,是怎么回事?

ISO 3166-1 只收录主权国家和部分非主权实体(如香港、台湾),不包含城市、省州或非官方地区。如果你输入的是地区名(如“加州”“巴伐利亚”),工具无法识别。建议先确认目标是否在国家列表中;如果是属地(如波多黎各、关岛),通常有独立代码,但需用英文名或标准代码查询。本工具支持中文名和英文名模糊搜索,尽量用全称试试。

查出来的数字码是三位数,有的国家数字码前面有0,这个0要保留吗?

需要保留。ISO 3166-1 数字码固定为三位数字,不足三位的前面补零,例如安道尔是 020,不写 0 变成 20 就对应另一个实体了。本工具输出时直接显示完整三位数,你复制粘贴即可,无需手动补零。如果用于数据库字段或 API 传参,建议按字符串处理,避免数字类型自动去掉前导零。

这个工具查出来的代码是最新的吗?南苏丹、克里米亚这些新变化有没有?

本工具内置的数据基于 ISO 3166 维护机构(ISO 3166/MA)最新发布的更新,包含 2020 年后新增的国家(如南苏丹 SD/SSD/728)和名称变更(如斯威士兰从 SZ 改为 SZ,但保留旧代码)。克里米亚目前无独立代码,仍归属乌克兰 UA。如果后续有新增或修改,工具会随数据源同步更新。建议用于通用查询,若涉及正式文件请对照官方发布确认。

为什么我搜“台湾”出来的是中国台湾,而不是单独的国家代码?

ISO 3166-1 标准中,台湾地区以“台湾(中国的一个省)”名义登记,代码为 TW/TWN/158。本工具遵循该标准,查询“台湾”时显示“中国台湾(TW)”,标识其为中国的一部分。如果你需要单独用于非政治性场景(如物流、旅游),直接用 TW 二字码即可,工具会返回对应的三字码和数字码,不影响实际使用。

我有一堆国家名要批量查代码,这个工具有没有批量导入功能?

本工具当前为纯前端实现,每次只能输入一个名称或代码查询,不支持批量上传文件或粘贴多行。如果需要批量处理,可以逐条查询并手动记录结果。建议将常用代码保存为本地表格,或使用 API 接口(如 REST Countries)批量获取。工具的优势在于快速单次查询,适合临时对照或验证单个代码是否正确。

这个工具是离线用的吗?没网能不能查?

本工具是纯前端实现,所有国家代码数据直接内置在页面中,无需联网请求服务器。首次加载页面后,数据即缓存到浏览器,断网状态下仍可正常查询。适合在无网络环境(如飞机上、偏远地区)或隐私敏感场景使用。但注意,如果浏览器清除了缓存或首次未完整加载,断网后可能无法工作,建议提前打开页面确保数据就绪。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭