composer.json作者姓名字段完全支持中文,前提是文件保存为utf-8无bom编码;乱码或报错主因是编辑器(如记事本默认gbk)、ide编码设置错误或.gitattributes缺失导致git自动转码,而非composer限制。

Composer.json 中作者姓名字段是否支持中文
完全支持,composer.json 是 UTF-8 编码的 JSON 文件,只要文件本身保存为 UTF-8(无 BOM),中文姓名可直接写入 name 字段,无需转义或 Base64 编码。
为什么有时中文显示为乱码或报错
常见原因不是 Composer 本身限制,而是编辑器或环境编码不一致:
- 用 Windows 记事本保存时默认用 GBK,导致
composer validate报JSON decode error: Syntax error - VS Code 或 PhpStorm 没设为 UTF-8 编码,输入中文后实际存为其他编码
- Git 提交时因 .gitattributes 缺失,Windows 客户端自动转换换行符并干扰 UTF-8 读取(少见但存在)
正确写法与验证步骤
直接在 authors 数组中填写中文,例如:
{
"authors": [
{
"name": "张三",
"email": "zhangsan@example.com"
}
]
}
验证是否生效:
- 用
composer validate检查语法 —— 不报错即编码正确 - 用
cat composer.json | jq '.authors[0].name'(需安装 jq)确认输出是"张三"而非乱码或 null - 提交前运行
file -i composer.json(Linux/macOS)或用编辑器查看文件编码,确保是utf-8
CI/CD 或共享环境中容易忽略的点
团队协作时,仅保证本地文件编码正确不够:
- PHP 运行环境无需额外配置,Composer 读取 JSON 时原样解析 UTF-8 字节
- Docker 构建中若使用
alpine基础镜像,默认 locale 是 C,不影响 JSON 解析,但可能影响终端输出显示(这属于 display 层问题,不阻碍功能) - GitHub/GitLab 页面能正常显示中文,前提是 Git 未对文件做编码转换 —— 推荐在项目根目录加
.gitattributes,内容为:composer.json text eol=lf encoding=utf-8
真正要盯住的只有文件保存编码和 Git 提交一致性,其余环节基本零干预。











