生活工具 · 国际信息

货币代码 ISO 4217

货币/三字码/符号/国家

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 57 次使用
本地查询 · 不联网 · 种货币 ISO 4217
搜索货币名 / 三字码 / 数字码 / 符号 / 国家(模糊匹配)
↑↓ 选择 · 回车确认 · 点击结果卡复制代码 / 符号
货币代码表ISO 4217 currency table · 点击行查看详情
符号货币三字码数字码小数使用国家 / 地区
常见符号currency symbols · 点击复制符号
小数位科普minor units · 为何各币种小数位不同
2 位 · 绝大多数主流
CNY 人民币 · USD 美元
EUR 欧元 · GBP 英镑
1 元 = 100 分(角 / 分、cent、pence)。ISO 4217 中绝大多数货币的「次级单位」为 1/100,故标准小数位 = 2。
0 位 · 无小数整数币
JPY 日元 · KRW 韩元
VND 越南盾 · CLP 智利比索
这些货币不设流通的次级单位,最小面额即 1 个货币单位,因此小数位为 0,金额永远是整数。
3 位 · 千分制少数
BHD 巴林第纳尔
KWD 科威特第纳尔
OMR 阿曼里亚尔
JOD 约旦第纳尔
这些币种次级单位为 1/1000(如巴林「费尔」fils),因此小数位 = 3,记账与转账须保留三位小数。
结构 · 编码规则读懂 ISO
三字码 = 国家 ISO 3166
两位 + 货币首字母
CN+Y=CNY、US+D=USD
数字码(156 / 840 / 978)与国家数字码对应,用于不便显示拉丁字母的系统;EUR 等超国家货币用 9 开头。
说明 · 诚实标注how it works

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

· 数据标准:依据 ISO 4217(国际标准化组织货币与资金代码),收录现行流通货币约 种;不含已退出流通的旧币与贵金属代码(XAU/XAG 等)。

· 小数位:列「小数」为 ISO 4217 规定的次级单位位数,0 位(JPY/KRW 等)、2 位(多数)、3 位(BHD/KWD/OMR/JOD/TND 等)。

· 符号仅供参考:部分货币本地符号在不同地区写法略有差异(如里亚尔 / 第纳尔的阿拉伯文符号),以三字母代码为唯一权威标识。

就绪 · 输入货币名 / 代码 / 国家即可查询
相关工具related tools
常见问题FAQ
ISO 4217 是什么?三字母代码怎么来的?
ISO 4217 是国际标准化组织(ISO)发布的货币和资金代码标准,为每种货币分配唯一的三字母代码、三位数字代码和小数位。三字母代码通常取国家 ISO 3166 两字母代码 + 货币名称首字母,如中国 CN + 人民币 Yuan = CNY,美国 US + Dollar = USD,日本 JP + Yen = JPY
为什么日元、韩元没有小数(小数位为 0)?
小数位由该货币是否设有「次级单位」决定。人民币有「角 / 分」(1 元 = 100 分),所以 2 位;而日元(JPY)、韩元(KRW)、越南盾(VND)等不流通比 1 更小的单位,最小面额就是 1,因此 ISO 4217 规定其小数位为 0,金额永远是整数。
有 3 位小数的货币吗?
有。中东部分国家的货币次级单位为 1/1000:巴林第纳尔 BHD、科威特第纳尔 KWD、阿曼里亚尔 OMR、约旦第纳尔 JOD、突尼斯第纳尔 TND、利比亚第纳尔 LYD、伊拉克第纳尔 IQD 等小数位均为 3。1 第纳尔 = 1000 费尔(fils)/ 米利姆。
数字代码(156 / 840 / 978)有什么用?
数字代码是货币的三位数标识,与国家 ISO 3166-1 数字码对应(中国 156、美国 840),主要用于不便显示拉丁字母的系统(如部分银行报文、数据交换)。超国家货币如欧元 978、特别提款权 SDR 等以 9 开头单独编号。
人民币代码是 CNY 还是 RMB?港币、新台币呢?
ISO 4217 标准代码是 CNY(China Yuan);RMB(人民币拼音缩写)是俗称,非标准代码。离岸人民币常用 CNH(非 ISO 官方)。港币为 HKD、澳门元 MOP、新台币 TWD,均独立于 CNY。
欧元区有哪些国家用 EUR?
欧元 EUR(978,2 位小数)由欧元区国家共同使用,包括德国、法国、意大利、西班牙、荷兰、比利时、奥地利、葡萄牙、爱尔兰、希腊、芬兰等 20 国,以及部分非欧盟地区。它是典型的「超国家货币」,故数字码以 9 开头。
第一节

关于本工具

About

跨境支付单上看到“CNY”却不确定是不是人民币,或者给海外客户开发票时把“美元”的代码写成了“USA”——这种三字码的模糊地带,正是财务和外贸人员每天要跨的坑。这个工具按 ISO 4217 标准列出全球 170 余种法定货币的字母代码、数字代码、符号及所属国家或地区。所有数据直接嵌入页面,查询不经过服务器,断网也能翻。

使用场景

跨境收款填错币种

自由职业者小陈接了一个日本客户的网站维护单,合同金额50万日元。客户打款时,小陈在收款平台「币种」下拉框里看到了 JPY、JPY(1)、JPY(2)三个选项,一时分不清哪个才是标准日元代码。他打开本工具,输入「日本」查询,确认标准货币代码为 JPY,货币符号为 ¥,避免了因选错代码导致款项被退回或挂账的风险。

外贸合同对账纠偏

出口商老李收到一份来自巴西客户的采购合同,总金额显示为 R$ 120,000。老李不确定 R$ 是巴西雷亚尔还是其他货币的缩写。他使用本工具搜索「R$」,查到其对应巴西雷亚尔(BRL),而智利比索(CLP)符号也是 $,但代码不同。老李据此在合同条款中明确标注了货币代码 BRL,避免了因符号歧义导致的汇率损失。

电商多站点定价统一

运营专员小王负责公司在亚马逊美国站、英国站和德国站的产品定价。公司要求所有站点按美元标价,但英国站后台显示 GBP,德国站显示 EUR。小王不确定 GBP 对应的是英镑还是其他货币,他通过本工具输入「英国」查询,确认 GBP 是英镑,符号 £,并据此将英国站标价换算为美元,确保了全球定价策略的一致性。

财务系统数据迁移校验

财务经理张姐将旧 ERP 系统的客户数据迁移到新系统,发现旧系统中「币种」字段存储的是货币符号(如 ¥、€、$),而新系统要求使用 ISO 4217 三字码。她利用本工具,通过输入货币符号反向查询对应的标准代码,将 200 多条客户记录中的符号逐一替换为 CNY、EUR、USD 等代码,迁移后系统自动汇率转换功能正常启用。

旅游预算记账分类

背包客小赵计划从泰国陆路进入柬埔寨和老挝,三国货币分别是泰铢(THB)、柬埔寨瑞尔(KHR)和老挝基普(LAK)。他在记账 App 中手动输入每笔开销时,经常混淆 THB 和 KHR 的符号。他打开本工具,对照三国货币代码和符号,在 App 中提前设置好三个账户,旅行期间每次消费后直接选择对应代码,回国后导出账单自动按币种汇总,无需手动换算。

对比矩阵

维度本工具在线货币代码查询站传统手册/线下查询
数据覆盖ISO 4217 全套标准货币代码,含数字码、字母码、符号、所属国家/地区部分站点仅覆盖常见货币,小国/地区货币可能缺失或未更新需购买最新版 ISO 标准文档或金融年鉴,更新滞后且不完整
查询方式支持按国家、代码、货币名称多维度搜索,实时过滤多数仅支持按字母顺序浏览或单一关键词搜索需逐页翻阅纸质表格或手动索引,效率极低
符号展示直接显示货币符号(如 ¥、$、€)及 Unicode 码点部分站点不显示符号,或仅显示 HTML 实体纸质资料通常不标注符号,需另查字符集
更新时效跟随 ISO 4217 官方更新,新货币/废弃代码同步发布更新频率不一,部分站点数月甚至数年不更新纸质手册出版周期长,通常 1-2 年才出新版
离线可用纯浏览器端运行,首次加载后完全离线可用依赖网络连接,断网无法使用完全离线,但携带不便
导出能力支持复制单条或批量导出查询结果多数不支持导出,或需手动抄录需手动抄写或复印,易出错
第二节

使用指南

Getting Started

使用步骤

  1. 1在搜索框输入国家名、货币名或三字码(如 JPY),下方列表实时过滤匹配条目
  2. 2点击任意行展开详情,显示完整货币名称、符号、数字代码及使用国家/地区
  3. 3点击行尾的复制图标,将三字码或符号复制到剪贴板,页面顶部出现短暂提示
  4. 4切换「按国家」「按代码」「按符号」标签,重新排列列表顺序,便于不同维度查找

输入输出示例

输入输出说明
CNY人民币 / 中国 / ¥常规:最常见的货币代码之一,验证基本查询功能是否返回正确的中文名称、国家及符号。
USD美元 / 美国 / $常规:全球基准货币,覆盖字母顺序靠前的代码,确认符号输出无歧义。
EUR欧元 / 欧元区 / €常规:多国共用货币,验证工具是否能正确显示区域为“欧元区”而非单一国家。
XBT未找到匹配项边界:非标准代码(比特币常用非官方代码),验证工具是否严格遵循 ISO 4217 标准,不返回模糊匹配。
US未找到匹配项边界:输入长度不足三位,验证工具是否对输入长度有校验,避免截断或错误匹配。
usd美元 / 美国 / $易错:小写输入,验证工具是否自动处理大小写,避免因大小写不匹配导致无结果。
CNY人民币 / 中国 / ¥易错:输入末尾带空格,验证工具是否自动去除前后空白,防止因多余空格查询失败。
XXX无货币 / 无国家 / 无符号边界:ISO 4217 中保留用于“无货币”交易的代码,验证工具能否正确处理这种特殊用途代码。

常见错误对照

1.把货币符号当代码用

✗ 错误USD
✓ 修复USD

ISO 4217 代码是三个大写字母,不是货币符号(如 $、€、¥)。符号不唯一($ 同时是美元、加元、澳元等),代码才是全球通用的标准标识。

2.大小写错误

✗ 错误usd / Usd / uSD
✓ 修复USD

ISO 4217 规定货币代码必须全部大写。小写或混写在数据库查询、API 调用中会导致匹配失败,因为多数系统严格区分大小写。

3.混淆数字代码与字母代码

✗ 错误840
✓ 修复USD

ISO 4217 同时定义三位字母代码和三位数字代码。数字代码(如 840 = 美元)主要用于金融系统传输,但日常查询、网站展示、支付接口通常要求字母代码。

4.把国家代码当货币代码

✗ 错误CN
✓ 修复CNY

国家代码(ISO 3166-1 alpha-2)是两位字母,货币代码是三位。CN 是中国,但货币代码是 CNY(人民币)。尤其注意欧元区:国家代码 DE(德国)、FR(法国),但货币代码都是 EUR。

5.忽略历史货币与当前货币的差异

✗ 错误FRF
✓ 修复EUR

法国法郎(FRF)已于 2002 年被欧元(EUR)取代。查询当前法国交易应使用 EUR;若查历史数据或旧单据才用 FRF。工具通常默认显示现行货币,需确认是否包含已废止代码。

6.混淆相似代码:XAU / XAG / XPT

✗ 错误GOLD
✓ 修复XAU

贵金属有专用 ISO 代码:XAU(金)、XAG(银)、XPT(铂)、XPD(钯)。它们以 X 开头,属于非国家货币。不要用英文名称(GOLD)或符号(Au)代替。

7.把加密货币代码当 ISO 代码

✗ 错误BTC
✓ 修复(无对应 ISO 代码)

比特币(BTC)、以太坊(ETH)等加密货币未被 ISO 4217 收录。该标准仅覆盖法定货币和少数贵金属/特殊资产。若工具未标注加密货币,输入 BTC 会返回空或无结果。

8.在复合代码中漏掉分隔符

✗ 错误USDJPY
✓ 修复USD/JPY

外汇交易对通常写成 USD/JPY(美元/日元),但 ISO 4217 本身只定义单货币代码。查询单个货币时不要带斜杠;若工具支持货币对查询,需按工具要求格式输入(多数用斜杠分隔)。

第三节

工作原理

How It Works

核心公式

ISO 4217 货币代码 = 国家/地区代码 + 货币首字母(2字母) + 校验位(1字母)

变量说明

  • 国家/地区代码ISO 3166-1 二位字母代码
  • 货币首字母货币英文名称的首字母(大写)
  • 校验位由 ISO 维护的第三位字母,用于区分同名货币

示例

中国人民币:国家代码 CN,货币 Yuan 首字母 Y,校验位 Y → 代码 CNY。日本日元:国家代码 JP,货币 Yen 首字母 Y,校验位 Y → 代码 JPY。两例中校验位均为 Y,但国家代码不同,最终代码不同。

输入货币名称如“美元”“人民币”本地查表匹配ISO 4217 内置数据输出三码与符号如 USD $ / CNY ¥拆分元素字母码 / 数字码 / 符号展示国家与币种所属国家 / 地区
用户输入 本地处理 输出结果
第四节

开发者集成

For Developers

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

import pycountry # 查询货币 ISO 4217 信息 currency = pycountry.currencies.get(alpha_3='USD') print(f"三字码: {currency.alpha_3}") print(f"数字码: {currency.numeric}") print(f"货币名称: {currency.name}") print(f"货币符号: {currency.symbol}") # 输出: # 三字码: USD # 数字码: 840 # 货币名称: United States Dollar # 货币符号: $
// 使用 Intl 获取货币符号 const currencyCode = 'USD'; const locale = 'en-US'; // 获取货币符号 const formatter = new Intl.NumberFormat(locale, { style: 'currency', currency: currencyCode, minimumFractionDigits: 0 }); // 解析出符号 const parts = formatter.formatToParts(123); const symbol = parts.find(p => p.type === 'currency').value; console.log(`三字码: ${currencyCode}`); console.log(`货币符号: ${symbol}`); // 输出: // 三字码: USD // 货币符号: $
package main import ( "fmt" "golang.org/x/text/currency" ) func main() { // 查询 ISO 4217 货币信息 unit, err := currency.ParseISO("USD") if err != nil { panic(err) } fmt.Printf("三字码: %s\n", unit.String()) fmt.Printf("数字码: %s\n", unit.NumericCode()) fmt.Printf("货币符号: %s\n", unit.Symbol()) // 输出: // 三字码: USD // 数字码: 840 // 货币符号: $ }
# 使用 curl 调用免费 ISO 4217 API curl -s "https://restcountries.com/v3.1/currency/usd" | \ jq '.[0].currencies | to_entries[] | {code: .key, name: .value.name, symbol: .value.symbol}' # 输出示例: # { # "code": "USD", # "name": "United States dollar", # "symbol": "$" # }
import java.util.Currency; import java.util.Locale; public class CurrencyInfo { public static void main(String[] args) { Currency currency = Currency.getInstance("USD"); System.out.println("三字码: " + currency.getCurrencyCode()); System.out.println("数字码: " + currency.getNumericCode()); System.out.println("货币符号: " + currency.getSymbol(Locale.US)); System.out.println("货币名称: " + currency.getDisplayName(Locale.US)); // 输出: // 三字码: USD // 数字码: 840 // 货币符号: $ // 货币名称: US Dollar } }
<?php // 使用内置 NumberFormatter 获取货币符号 $fmt = new NumberFormatter('en_US', NumberFormatter::CURRENCY); $fmt->setPattern('¤'); // 只显示符号 $currencyCode = 'USD'; echo "三字码: $currencyCode\n"; echo "货币符号: " . $fmt->formatCurrency(0, $currencyCode) . "\n"; // 输出: // 三字码: USD // 货币符号: $ ?>
第五节

常见问题

Q & A
我查美元代码是 USD,但有的地方写 US Dollar,这个工具能搜中文名吗?

可以。本工具支持按中文货币名称(如“美元”“日元”)、三字码(USD、JPY)或国家名称(美国、日本)搜索。输入“美元”会直接定位到 USD,并同时显示符号、国家列表。如果你只记得货币符号(如¥),也可以输入符号查询,系统会列出所有使用该符号的货币(如¥对应人民币、日元),避免混淆。

为什么有些国家显示多个货币代码?比如英国有 GBP 还有 JEP?

一个主权国家可能有多个法定货币,尤其是属地或海外领土。英国本土用英镑(GBP),但泽西岛(Jersey)用泽西镑(JEP),马恩岛用马恩岛镑(IMP)。本工具会列出该国家关联的所有货币代码,并在国家列标注具体地区。如果你只关心主要货币,可以按“常用度”排序,GBP 排在第一。

这个工具的数据来源是哪?会不会有旧国家(比如苏联)的代码?

数据基于 ISO 4217 现行标准,即国际标准化组织维护的最新货币代码表。失效或历史货币(如苏联卢布 SUR、德国马克 DEM)默认不显示,但本工具在高级筛选里提供了“包含已废弃代码”选项,打开后可查询历史代码用于回溯旧数据。如果你需要处理旧账目,建议先确认对应货币的废止日期。

我有一串数字代码(比如 840),能查到对应货币吗?

可以。ISO 4217 除了字母代码(USD),还有三位数字代码(840 对应美元)。在本工具搜索框输入数字代码(如 840、156),会直接匹配到对应的货币。这在国际汇款或银行系统接口对接时很常用,因为数字代码不易产生字母混淆(比如 CAD 和 C$ 可能误读)。

为什么欧元(EUR)的符号是 €,但有些地方显示 EUR 而有些显示 €?

三字码(EUR)是国际标准代码,用于系统间交换数据(如银行 SWIFT 报文);符号(€)是显示用的货币符号,用于日常账单或网页展示。本工具同时提供这两个字段:你可以在结果表里看到每行都有“代码”和“符号”两列。如果做数据导出,建议用代码列;如果做前端展示,用符号列。

我查人民币代码,显示 CNY 和 CNH,这俩有什么区别?

CNY 是大陆境内流通的人民币,CNH 是离岸人民币(主要在香港市场交易)。虽然面值相等,但汇率和流通范围不同——CNY 受央行中间价管理,CNH 由国际市场供需决定。本工具会在货币名称后标注“在岸 / 离岸”以示区分。如果你做外贸收款,务必确认对方账户是境内还是境外,选错代码可能导致汇款被拒。

这个工具能离线用吗?没网的时候还能查吗?

本工具是纯前端实现(FE),所有货币代码数据随页面加载一次性下载到浏览器内存中。首次访问后,只要不手动刷新或清除缓存,即使断网也能正常查询。不过如果关闭页面重新打开,需要重新联网加载。如果你需要长期离线使用,建议在联网时保存页面到本地(Ctrl+S),之后双击 .html 文件即可。

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

选择 打开 +新窗口 esc关闭