中文测试数据的价值在于它能触达纯英文数据永远碰不到的代码路径:多字节字符编码、按字节计算的字段长度限制、姓在前名在后的姓名顺序,以及需要同时兼容汉字和拼音两套书写系统的表单。生成器下方整理了中国地址、邮编与电话号码的结构规则,方便你核对自己的校验逻辑。
中国地址的书写结构
中国地址按从大到小的顺序书写,与西方习惯正好相反:省 → 市 → 区/县 → 街道/路 → 号 → 楼/单元/室。完整示例:北京市朝阳区建国路88号2号楼3单元502室。北京、上海、天津、重庆四个直辖市本身就是省级行政区,地址直接从市名开始;其余地区则以省份开头,如广东省、浙江省。
填写国际表单时,地址需要转写为拼音,并通常调整为从小到大的顺序以适配西式字段:Room 502, Unit 3, Building 2, No. 88 Jianguo Road, Chaoyang District, Beijing。同一个地址存在汉字和拼音两种形态,这正是很多系统栽跟头的地方:只接受拉丁字母的表单会把本土用户拒之门外,默认从小到大排序的解析逻辑会把国内格式的地址拆得面目全非。用两种文字的生成数据分别测试,才能覆盖全部路径。
六位邮政编码
中国邮编固定为六位数字,无分隔符。前两位标识省级行政区——10 是北京、20 是上海、30 是天津;中间两位定位到地市或邮区,末两位对应投递局。北京市中心是 100000,上海市中心是 200000。相比许多国家,校验规则很简单:恰好六位半角数字。真正值得测试的坑更隐蔽:从其他软件粘贴进来的全角数字或带空格的输入,以及那些按五位美国 ZIP 写死长度校验的通用"邮编"字段。
中国电话号码格式
手机号为 11 位,首位固定是 1,第二位在 3 到 9 之间——即 13x 到 19x 号段,分配给中国移动、中国联通和中国电信。国际格式加 +86 国家码,常按 3-4-4 分组书写:+86 138 0013 8000。固定电话由区号加七到八位本地号码组成:北京 010、上海 021、深圳 0755;加 +86 时区号的前导零要去掉。本工具生成的号码结构合法但数字随机,适合测试输入掩码和 libphonenumber 之类的解析库,不能拨打,也不能用于短信验证。
为什么中文测试数据很重要
中文数据能暴露纯拉丁字母数据永远测不出的问题。UTF-8 下每个汉字占三个字节,按字节定长的数据库列实际能存的字符数远少于设计预期;仍在使用 GBK 编码的遗留系统会把超出字符集的内容存成乱码。中文姓名姓在前、名在后——王小明的姓是王——且姓与名之间没有空格,这会让强制拆分 First Name / Last Name 或设置姓名最小长度的表单直接报错。排序、截断、搜索在 CJK 文本上的行为也都不同,只有足够真实的测试数据才能在用户之前发现这些缺陷。
每条生成记录还包含一个身份证号字段,遵循官方 18 位结构:六位地区码、八位出生日期、三位顺序码和一位校验码(可能是 X)。它的结构正确,且与记录中的生日保持一致,可以用来测试校验位算法、输入掩码和存储逻辑;但号码本身是随机的,未经任何机关签发,不属于任何人。
常见问题
这些是真实的中国地址吗? +
不是。省、市、区、路名和门牌号都是随机组合的。生成的地址可能碰巧与真实地点相似,但并非来自任何真实地址或人口数据库,也不保证可以投递。
可以用生成的地址收快递或验证账号吗? +
不可以。这些数据仅用于软件测试、表单校验和演示,无法通过实名认证或身份验证,也收不到任何邮件和快递;用虚构信息误导服务或他人可能违反相关条款甚至法律。
生成的身份证号是真的吗? +
不是。它遵循官方 18 位格式——地区码、出生日期、顺序码和校验码——能通过结构校验,但数字完全随机,未经任何机关签发,不属于任何人。
应该用汉字还是拼音做测试? +
都要。国内用户按从大到小的顺序输入汉字地址,国际表单则要求从小到大排列的拼音。两种文字都测一遍,才能发现只在 CJK 文本下出现的编码错误、字节长度限制和排版问题。