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

为什么PHP intl v1.1.0调用\Locale::getDisplayRegion传'-SV'返回El Salvador

问题原因解答
  • 核心认知修正
    你混淆了两类不同的ISO编码标准:
    1. sv是ISO 639-1 两位语言代码,代表瑞典语
    2. 瑞典的ISO 3166-1 alpha-2 两位国家/地区代码是SE,而非你以为的SV
    3. SV是萨尔瓦多的ISO 3166-1两位国家代码,和瑞典语的语言代码刚好字符串重合,是导致混淆的根本原因
  • Locale::getDisplayRegion('-SV', 'en')返回萨尔瓦多的原因
    PHP的Locale系列方法底层依赖ICU国际化组件,getDisplayRegion的作用是提取传入Locale标识符中的国家/地区代码段,返回对应国家的本地化名称。你传入的-SV是不完整Locale,缺少语言段,ICU会直接把SV识别为国家代码,匹配到萨尔瓦多,返回El Salvador属于预期行为。
  • 传入es-SV返回瑞典的异常原因
    正常调用\Locale::getDisplayRegion('es-SV', 'en')会返回El Salvador,你拿到瑞典的结果大概率是以下两类错误导致:
    1. 调用方法错误,比如误用了getDisplayLanguage等获取语言名称的方法,或是参数顺序传错
    2. 传入的Locale字符串格式错误,比如把语言段和国家段位置写反,或是错误拼写了Locale内容
  • 正确调用示例
    • 获取瑞典的国家英文名称:\Locale::getDisplayRegion('sv-SE', 'en'),返回值为Sweden
    • 获取萨尔瓦多的国家英文名称:\Locale::getDisplayRegion('es-SV', 'en'),返回值为El Salvador
    • 获取瑞典语的英文名称:\Locale::getDisplayLanguage('sv', 'en'),返回值为Swedish

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:54:02