Accept-Language请求头常见中文语言代码规范及实际使用情况问询
实际场景Accept-Language常见中文语言代码说明
你提到的RFC 5646规范的要求是没错的,zh-Hans(简体)、zh-Hant(繁体)以及zh-Hans-SG、zh-Hant-MO这类带书写系统标记的格式才是合规的中文表示方式,zh、zh-CN、zh-TW这类确实不符合规范要求。
但受历史实现惯性影响,目前实际请求里的中文语言代码非常多样,常见的有以下几类:
- 无任何限定的基础代码:
zh,大量旧设备、低版本浏览器会直接发送这个值,没有标注地域或书写系统 - 旧版地域绑定格式(目前占比仍然最高):
zh-CN:大陆简体中文用户最常见的请求值,大部分国产浏览器、Windows系统默认中文配置都会发送该值zh-TW:中国台湾地区繁体用户常用值zh-HK:中国香港地区繁体用户常用值zh-MO:中国澳门地区繁体用户常用值zh-SG:新加坡简体用户偶尔会出现的请求值
- 合规格式(近年新设备、高版本浏览器占比逐年提升):
zh-Hans:通用简体中文,没有绑定具体地域zh-Hant:通用繁体中文,没有绑定具体地域- 带地域的合规细分格式:
zh-Hans-CN、zh-Hant-TW、zh-Hans-SG、zh-Hant-MO等,仅在做了精准语言配置的设备上会出现
如果是做站点语言匹配的话,建议优先识别书写系统标记:只要请求头中包含Hans就返回简体内容,包含Hant就返回繁体内容;如果没有书写系统标记,再根据地域标记映射:CN、SG对应简体,TW、HK、MO对应繁体;仅收到单独的zh时,可以默认返回简体,或者结合用户IP做二次判断。
内容的提问来源于stack exchange,提问作者fallincode
相关产品推荐
相关产品推荐

