2013-04-28 3 views
0

나는 jgarber's custom buildpack을 사용하여 Heroku에서 호스팅하는 Octopress 블로그를 가지고 있습니다. 내가 rdiscount을 붙잡 으면서 꽤 잘 작동하는 것들이 있었지만, 최근에 MultiMarkdown에 대해 kramdown으로 전환하기로 결정했습니다. 그것은 이상한 일이 생길 때입니다.octopress, kramdown 및 Heroku가있는 유니 코드 괴물

이 내 로컬 상자 (OS의 X)에 잘 작동하지만 내가 Heroku가를 누를 때, 나는 다음과 같은 오류 얻을 : 지금까지 내가 말할 수있는

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

을, 난 UTF-8을 통해 하지만 루비가 정상적인 스택이 아니라는 것을 쉽게 인정할 것입니다. 그래서 아마도 나는 뭔가를 놓친 것입니다. 나는 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> 

, 나는 밖으로 모든이야을 아이디어.

답변

0

LC_CTYPE env var도 설정 했습니까? 시도하십시오 LC_CTYPE=en_US.UTF-8.

+0

안타깝게도, 그것은 내'.profile'의 일부였습니다. (당일에'svn' 문제를 해결해야했고, 방금 돌아 왔습니다). –

+0

그리고'LC_ALL '도? – arnab

0

비슷한 문제가 있습니다. GitHub에 대한 초기 설치 및 배포가 정상적으로 작동했습니다. _config.yml을 편집하고 ş과 같은 일부 터키어 문자를 삽입하면 비슷한 오류가 발생합니다. LANGLC_ALL과 같은 시스템 변수를 추가해도 도움이되지 않았습니다.

그런 다음 메모장 + +로 파일을 열었습니다. BOM없이 인코딩을 UTF-8로 변경했는데 문제가 해결되었습니다. 이것은 또한 포스트 파일

그래서 그냥 비 ASCII 문자를 삽입하기 전에 BOM없이 파일의 인코딩 UTF-8을 변경 (source/_posts 폴더에 .markdown 확장자를 가진 사람) 작동합니다. 환경 변수가 필요 없습니다.