ruby - 在 Heroku 中将 UTF-8 设置为默认字符串编码

标签 ruby encoding heroku

我需要在 Heroku 中将默认的 ruby​​ 字符串编码更改为 UTF-8。由于某种原因,它是 US-ASCII。

$ heroku console
Ruby console for myapp.heroku.com 
>> "a".encoding 
=> #<Encoding:ASCII-8BIT>

但是,如果我在本地运行 irb,我会得到不同的结果:

$ irb 
ruby-1.9.2-p136 :001 > "a".encoding 
=> #<Encoding:UTF-8>

两者都在 ruby​​ 1.9.2 上运行。我也试过设置这个,但没用:

Encoding.default_internal = Encoding.default_external = "UTF-8"

想法?

谢谢, 菲利普

最佳答案

根据 Heroku 支持人员的说法,这就是神奇的东西:

heroku config:add LANG=en_US.UTF-8

尽管heroku console将继续报告字符串编码为 ASCII-8BIT ,您的实际应用程序将以正确的编码运行,基于 LANG配置变量 您可以通过这样做仔细检查:

$ heroku run bash
Running bash attached to terminal... up, run.2
u20415@022e95bf-3ab6-4291-97b1-741f95e7fbda:/app$ irb
irb(main):001:0> "a".encoding
=> #<Encoding:UTF-8>

关于ruby - 在 Heroku 中将 UTF-8 设置为默认字符串编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7612912/

相关文章:

ruby-on-rails - 如何编写这些资源的路由?

ruby - 在 Ruby 中解析二进制数据

linux - 由于 Windows 和 Linux 的 Base 64 编码不匹配\n

java - 非 BMP 平面字符的 Unicode 转义序列

ruby-on-rails - Rails Unicorn Web 服务器无法在 Heroku 上启动

ruby-on-rails - 针对 vagrant box 运行 rspec

ruby-on-rails - 嵌套形式和 habtm

node.js - 如何在 Node.js 中为请求编码任意字符串?

java - jsoup 获取 URL 时出错。 Status=503 仅在 Heroku 上

git - Heroku 认为我的 ssh 放错地方了