国家与地区代码相关工具合集
国家代码工具合集:区分 ISO 3166-1 alpha-2、alpha-3 与数字码三种表示,说明域名 ccTLD、电话区号与语言代码并非同一体系,并给出日期格式化中因时区导致差一天的根因与修复方法,附数值换算与文本处理工具入口。适合处理多语言数据与区域化展示。
「中国的国家代码」这个问题至少有三个答案,取决于你在哪个体系里查。
常见方案对照
| 体系 | 示例(中国) | 主要用途 |
|---|---|---|
| ISO 3166-1 alpha-2 | CN | 域名、多数系统标识 |
| ISO 3166-1 alpha-3 | CHN | 联合国、部分航空与运输 |
| ISO 3166-1 数字码 | 156 | 统计与旧系统 |
| ccTLD 域名 | .cn | 国家顶级域名 |
| 国际电话区号 | +86 | 电话号码 |
| 语言代码 | zh | ISO 639 语言标识 |
| 完整 locale | zh-CN | 语言 + 地区组合 |
| 未分配国家码 | CN(根区) | 见 IANA 根区记录 |
边界条件
- ccTLD 与 ISO 国家码并非一一对应:.uk 是英国的 ccTLD,但 ISO alpha-2 是 GB。
- 数字电话区号不等于国家码:+7 是俄罗斯与哈萨克斯坦共用。
- 语言代码(zh)与地区码(CN)组合成 zh-CN 才是完整的 locale 标识。
- 同一时区内夏令时切换会让 UTC 与本地时间的偏移在一年中变化两次。
常见坑
- 把 +86 当成国家码存储,与 ISO 的 CN 混在一张表里。
- 用 ISO alpha-2 匹配英国,实际值是 GB 而非 UK,写成 UK 全部匹配失败。
- 把 UTC 时间戳当本地时间格式化,导致日期差一天。
- 用日期字符串直接加减天数绕过时区,在跨夏令时的时间段算出错误日期。
相关工具
- 文本统计实时统计字符数、单词数、行数、字节数与预估阅读时间,支持中英文混合计数。同时给出字符数、单词数、行数,以及 UTF-8 与 GBK 两种编码下的字节数,中文在其中占用不同。区分可见字符与空白字符,并估算阅读或朗读所需时间。适合核对接口字段长度上限与数据库字段约束。所有指标随输入实时更新。
- 文本替换工具在文本中执行批量查找替换,支持正则表达式、大小写敏感选项与全局替换预览。支持普通文本与正则两种查找方式,可选择大小写敏感与全局替换。替换前会列出所有命中位置与预览结果,避免误改。支持普通文本与正则表达式两种查找方式,可勾选大小写敏感与全词匹配。替换前会列出所有命中位置并预览结果。
- 大小写格式转换器在 camelCase、snake_case、kebab-case 与 PascalCase 等命名风格间互转。也能生成全大写下划线常量名与标题式写法,切换时无需手动改字。转换会保留数字与已有缩写,避免把 API 变成 aPI。转换前可预览每一行结果,确认无误再复制。可一次转换整列字段名与变量名。
常见问题
ISO 3166 的 alpha-2 和 alpha-3 有什么区别?
**同一国家的两种长度写法。** alpha-2 是两字母代码(CN、US、DE),用于域名与多数系统标识;alpha-3 是三字母代码(CHN、USA、DEU),用于需要更长标识位的场合。部分系统用的是三字母码,而 ISO 3166-1 自己的数字码是三位纯数字。API 设计与数据库存储时要明确用哪一种,混用会在对接时出错。
为什么日期格式化会差一天?
几乎都因为**时区处理**。同一个 UTC 时间戳在北京时间是 6 月 1 日 08:00,在美国东部是前一天的 20:00——**日期差一天**。根源是把 UTC 时间戳当作本地时间处理。正确做法是:**存储用 UTC 或带时区的 ISO 8601 字符串,显示时才转成目标时区**。永远不要用日期字符串直接加减天数,那会绕过时区与夏令时规则。