Encoding 为什么';Heroku是否在其虚拟机上指定默认字符编码?

Encoding 为什么';Heroku是否在其虚拟机上指定默认字符编码?,encoding,utf-8,Encoding,Utf 8,Heroku似乎没有在他们的虚拟机上明确指定字符编码,因此默认为8位ASCII。Debian和Ubuntu的其他现代版本将UTF-8指定为默认值,这避免了当语言回退到操作系统字符编码来读取输入时出现的问题。为什么Heroku不也使用这个默认值 基于其他SO帖子,我发现至少,并且已经解决了这个问题,他们建议在操作系统级别显式设置UTF-8,以通过以下命令避免问题: heroku config:add LANG=en_US.UTF-8 我觉得这是Heroku必须考虑的事情,因为字符编码非常重要。H

Heroku似乎没有在他们的虚拟机上明确指定字符编码,因此默认为8位ASCII。Debian和Ubuntu的其他现代版本将UTF-8指定为默认值,这避免了当语言回退到操作系统字符编码来读取输入时出现的问题。为什么Heroku不也使用这个默认值

基于其他SO帖子,我发现至少,并且已经解决了这个问题,他们建议在操作系统级别显式设置UTF-8,以通过以下命令避免问题:

heroku config:add LANG=en_US.UTF-8

我觉得这是Heroku必须考虑的事情,因为字符编码非常重要。Heroku是否有充分的理由不将UTF-8指定为操作系统默认值?

Heroku的支持对回答我的问题非常有帮助。本质上,它们只是将编码留给每种语言的构建包。此外,他们还给我提供了链接,说明如何在为和维护的构建包中实现这一点

我发现Python脚本特别有助于为Haskell应用程序自动设置编码(我为Haskell buildpack复制了部分脚本)。您应该在中的两个位置指定默认字符编码。首先,在编译编译器之前导出该语言可能是一个好主意,就像它们对Python所做的那样。其次(对应用程序来说也是最重要的),您应该在中设置它,以便将其作为应用程序的上下文


希望这是有用的信息,使人们为其他语言的buildpack

谢谢@ZekeSonxx。我已经向Heroku提交了一份支持请求,如果我通过他们的官方支持得到我的问题的答案,我也会跟进这个问题。