You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js v12后澳元(AUD)货币符号是否发生变更?

Node.js/浏览器中toLocaleString AUD货币格式差异解析

差异产生的原因

  • ICU版本与数据完整性差异:toLocaleString完全依赖ICU(International Components for Unicode)库处理国际化格式。Node.js v12默认启用icu_small(精简版ICU数据),其中澳元的en-AU格式保留了A$前缀;而v14及以上版本默认使用完整ICU数据,同时Unicode CLDR(通用区域数据仓库)的版本更新调整了澳元在en-AU locale下的标准格式,移除了前缀A,仅保留$。
  • 浏览器ICU版本迭代:旧版Chromium(v44)搭载的旧版ICU遵循更早的CLDR规则,因此输出A$;新版浏览器同步更新了ICU与CLDR数据,适配了最新的格式标准。
  • full-icu包的作用:在Node.js v12中安装full-icu并指定NODE_ICU_DATA后,会替换默认的精简版ICU为完整数据,输出自然与v14+版本一致的$100.20。

正确结果说明

根据最新的Unicode CLDR规范,en-AU locale下澳元的标准货币符号为$——因为澳大利亚本地语境中,$默认指代澳元,无需前缀区分;而A$属于旧版规范的格式,多用于需要明确区分不同国家"元"货币的国际场景,但在en-AU的本地化场景下,当前标准更倾向于简化为$,因此$100.20是符合现行规范的正确结果。

相关参考依据

  • Node.js官方文档明确说明:Node.js支持精简版与完整版两种ICU模式,不同模式下的国际化格式输出存在差异,可通过NODE_ICU_DATA环境变量切换使用完整ICU数据。
  • Unicode CLDR的版本更新记录:CLDR会定期迭代区域化数据,货币符号的格式规则属于常规更新内容,澳元在en-AU下的格式变更正是CLDR标准调整的一部分。

内容的提问来源于stack exchange,提问作者Kennyhyun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 23:41:06