我有一个使用jgarber 的自定义 buildpack在 Heroku 上托管的Octopress博客。只要我坚持使用 ,我的工作就相当好,但我最近决定切换到MultiMarkdown支持。就在那时,事情变得很奇怪。rdiscount
kramdown
这在我的本地机器(OS X)上运行良好,但是当我推送到 Heroku 时,我收到以下错误:
Liquid Exception: incompatible character encodings: UTF-8 and ASCII-8BIT in atom.xml
据我所知,我一直是 UTF-8,但我很容易承认 Ruby 不是我的正常堆栈,所以也许我只是遗漏了一些东西。我在kramdown
v0.14.2 上。当我使用foreman run rake clean generate
时,一切正常,就像bundle exec rake clean generate
. 但是,当我推送到 Heroku(或运行heroku run rake clean generate
)时,我得到了上面的错误。
我认为这个问题可能与默认编码有关,所以我进行了以下实验:
$ irb
1.9.3-p327 :001 > ENV["LANG"]
=> "en_US.UTF-8"
1.9.3-p327 :002 > Encoding.default_external
=> #<Encoding:UTF-8>
和
$ heroku run irb
Running `irb` attached to terminal... up, run.6846
irb(main):001:0> ENV["LANG"]
=> "en_US.UTF-8"
irb(main):002:0> Encoding.default_external
=> #<Encoding:UTF-8>
在这一点上,我完全没有想法。