国际区号与本地格式的关系
别名: 国际区号 · 国家呼叫代码 · 本地号码格式 · country calling code
概念解释
国家呼叫代码与国内格式(country calling code and national format)描述的是同一电话号码在国际编号空间和某一拨号地区中的两种表达。国际表达通常用 +、国家呼叫代码和全国有效号码组成;国内表达可能加入国内长途前缀,并按当地习惯呈现。国家呼叫代码不是号码开头任意一到几位,也不等于国内区号;+ 表示拨号设备应使用当前出发地的国际呼叫前缀,而 00 只是部分地区采用的一种前缀。
机制
ITU-T E.164 规定用于国际公共电信的号码结构,而各国或共享编号区的主管机构规定国内编号与拨号计划。解析一个不带 + 的输入时,数字本身往往不足以说明它属于哪个国家:同一前缀可能既像国家呼叫代码,也像某地全国有效号码的开头,因此 libphonenumber 需要默认地区才能解释国内格式。国内拨号前缀通常是路由指令,不一定属于国际号码;但也不能靠“删掉开头的 0”概括,因为有些编号计划把前导零保留在全国有效号码中。可靠转换依赖目标编号计划的可更新元数据,而不是截取或拼接字符串。
怎么研究
建立“输入文本 × 默认地区 × 拨号出发地”的测试矩阵,覆盖带 + 的国际表达、当地常见国内表达、显式国际呼叫前缀、共享国家呼叫代码的地区,以及编号计划中的前导零例外。观察解析出的国家呼叫代码、全国有效号码、格式化结果和错误类别,而不只记录能否提交。可用 ITU 国家编号计划、各国主管机构公告和 libphonenumber 版本化元数据构造预期结果;每次元数据升级都重放固定语料,检查原先记录是否改变解释。可用性研究还应观察国际号码持有者在国家选择器、默认地区推断和错误修复中的犹豫与误选。
边界
国家呼叫代码说明号码资源的编号归属,不可靠地说明持有者当前的位置、居住国、时区、语言或国籍;号码携转、漫游、网络电话和共享编号区都会破坏这些推断。仅能在某一企业交换机、运营商网络或本地区域内拨打的号码,也未必能转换成完整的国际 E.164 号码。默认地区可以帮助解释省略的上下文,却不能在有歧义时冒充用户已经确认的国家。编号计划会变更,文档公告、运营商部署和第三方元数据之间还可能存在时间差。
怎么落地
- 允许用户输入带
+的国际号码;对不带+的输入,使用用户明确选择或可信业务上下文中的地区解析,并把推断地区展示为可修改信息。 - 用维护中的号码库解析国家呼叫代码、全国有效号码和国内拨号前缀;不要以固定长度截取国家代码,也不要统一删除前导零。
- 将“号码归属地区”和“用户所在地区、界面语言、拨号出发地”建成不同字段;只有确有业务依据时才从一个推断另一个。
- 以每个目标市场的官方样例和真实脱敏输入测试国内转国际、国际转国内的往返;升级元数据后重跑测试,并对解释变化的存量记录安排复核。