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

标签 symfony character-encoding symfony4

谁能告诉我为什么

symfony new project-name --full

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

我在 Windows 10 上。

最佳答案

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

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

composer create-project symfony/website-skeleton

依次调用 git clone,就是这样。

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

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

但更重要的是,除了极少数异常(exception),几乎所有文件都只包含 ASCII 范围内的字符...并且由于 UTF-8 是 ASCII 的超集,没有 ASCII 范围外字符的文件与 UTF-8 无法区分或 ISO-8859-1。

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

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

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

关于symfony - "symfony new project-name"命令以 ISO-9958-1 编码生成文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67537165/

相关文章:

php - 与学说 ORM (Symfony) 正确创建 ManyToMany 递归/自反关系

python - 为什么我收到 "UnicodeEncodeError: ' charmap' 编解码器无法编码字符”错误消息

php - 数据库 ORM Doctrine Symfony 4

php - 有没有办法在 doctrine2 中使用 mysql 二元运算符?

Symfony2 - 我应该把用户上传的文件放在哪里?

java - 使用 ISO8859_15_FDIS 将 Java 中的不可打印字符转换为可打印字符

bootstrap-4 - 在 Symfony 4 中使用带有 Webpack Encore 的 Bootstrap

Symfony 4 无法在服务上注入(inject)标量值

symfony - 尝试理解 Doctrine Criteria() 以及是否可以缓存

delphi - 错误的Unicode转换,如何在Delphi 2010源代码中存储重音字符并处理字符集?