我需要在 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/