"symfony new project-name" 命令以 ISO-9958-1 编码生成文件

"symfony new project-name" command generates files in ISO-9958-1 encoding

谁能告诉我为什么

symfony new project-name --full

生成 ISO-8859-1 编码的文件?正如我现在发现的那样,文件不是 UTF-8 编码的。为什么会这样,如何将其更改为 UTF-8?如何确保像 make:form 这样的命令会生成 UTF-8 文件?

我在Windows10.

这很可能是您的文本编辑器感到困惑或“假设”了不正确的编码..

symfony new project-name --full 只是使用 composer 创建项目。具体来说它调用:

composer create-project symfony/website-skeleton

依次调用 git clone,仅此而已。

文件并非真正“生成”,而只是从适当的 Git 存储库中克隆而来。 Git 将直接检索存储库中存在的文件,而不应用任何类型的转换。

所以文件将使用它们在原始存储库中的任何编码。据我所知,这很重要......它已经 UTF-8。

但更重要的是,几乎所有(极少数例外)文件仅包含 ASCII 范围内的字符...并且由于 UTF-8 是 ASCII 的超集,因此没有 ASCII 范围外字符的文件无法与 UTF 区分开来-8 或 ISO-8859-1。

最重要的是,文件的实际编码在很大程度上是无关紧要的,除了非常具体的地方(例如,将用作输出的硬编码字符串)。

我的猜测是,在没有特殊字符或 BOM 的情况下,您的文本编辑器默认显示文件,就好像它们是以编辑器的默认编码“编码”的一样,因为如果您添加任何超出 ASCII 范围的字符,将使用 ISO-8859-1 进行编码。

解决方案是更改您使用的任何代码编辑器的设置,使其默认为 UTF-8。