0

jgarber のカスタム buildpackを使用して、Heroku でホストしているOctopressブログを持っています。に固執している限り、かなりうまく機能していましたが、最近、 MultiMarkdownサポートのためにに切り替えることにしました。その時、物事は奇妙になりました。rdiscountkramdown

これは私のローカル ボックス (OS X) では問題なく動作しますが、Heroku にプッシュすると、次のエラーが発生します。

Liquid Exception: incompatible character encodings: UTF-8 and ASCII-8BIT in atom.xml

私が知る限り、私は根っからの UTF-8 ですが、Ruby が私の通常のスタックではないことはすぐに認めます。私はkramdownv0.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>

この時点で、私はすべてのアイデアがありません。

4

2 に答える 2

0

環境変数も設定してみましたLC_CTYPEか?試してみてくださいLC_CTYPE=en_US.UTF-8

于 2013-07-22T06:31:43.073 に答える
0

同様の問題がありました。私の初期セットアップと GitHub へのデプロイはうまくいきました。を編集して の_config.ymlようなトルコ語の文字を挿入しşたところ、同様のエラーが発生しました。LANGやのようなシステム変数を追加LC_ALLしても役に立ちませんでした。

次に、メモ帳++でファイルを開き、エンコーディングをBOMなしのUTF-8に変更すると、問題は解決しました。これは、投稿ファイル (フォルダー内の.markdown拡張子を持つファイル) に対しても機能します。source/_posts

したがって、ASCII 以外の文字を挿入する前に、ファイルのエンコーディングを BOM なしの UTF-8 に変更するだけです。環境変数は必要ありません。

于 2014-08-10T12:35:57.590 に答える