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

发布于 2024-12-08 00:42:28 字数 465 浏览 0 评论 0原文

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

有想法吗?

谢谢, 费利佩

I need to change the default ruby string encoding to UTF-8 in Heroku. For some reason it is US-ASCII.

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

However, if I run irb locally I get a different result:

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

Both run on ruby 1.9.2. I've tried setting this as well, but didn't work:

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

Ideas?

Thanks,
Felipe

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

指尖微凉心微凉 2024-12-15 00:42:28

根据 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>

As per the Heroku support staff, this is the magic thing:

heroku config:add LANG=en_US.UTF-8

Although heroku console will keep reporting strings encoding as ASCII-8BIT, your actuall app will be running with the correct encoding, based on the LANG config var.
You can double check that by doing this:

$ 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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文