2012-02-12 3 views
0

레일 2.3.8/루비 1.8.7에서 2.3.14/루비 1.9.2로 마이 그 레이션했습니다. 쉽지는 않지만 기본적으로 작동합니다.레일즈 2.3 및 루비 1.9에서 바이트 시퀀스 utf-8이 잘못되었습니다.

ActionView::TemplateError (invalid byte sequence in UTF-8) on line #.... 

이것은 인코딩 문제, 나는 (Iconv.conv를 사용하여) 그것을 처리하는 방법에 대한 몇 가지 제안을 본 적이 : 내가 가지고 계속 문제가 가끔 HAML 템플릿에 나는 다음과 같은 오류가 발생합니다 있다는 것입니다 , 그러나 내가 시도한 것들은 효과가없는 것처럼 보였다. 응용 프로그램 수준에서이 문제를 어떻게 해결합니까 (모든 템플릿을 패치하지 않아도됩니까?). 감사.

편집 : 데이터베이스 테이블 'CHARSETUTF-8로 인코딩

ActionView::TemplateError (invalid byte sequence in UTF-8) on line #28 of app/views/users/_user.haml: 
27:  - if user.valid? 
28:  - image_onclick = remote_function(:url => { :action => :toggle_image, :id => user.id }) 

    vendor/rails/activesupport/lib/active_support/core_ext/object/blank.rb:68:in `=~' 
    vendor/rails/activesupport/lib/active_support/core_ext/object/blank.rb:68:in `!~' 
    vendor/rails/activesupport/lib/active_support/core_ext/object/blank.rb:68:in `blank?' 
    vendor/rails/activerecord/lib/active_record/validations.rb:478:in `block (2 levels) in validates_each' 
    vendor/rails/activerecord/lib/active_record/validations.rb:476:in `each' 
    vendor/rails/activerecord/lib/active_record/validations.rb:476:in `block in validates_each' 
    ... etc 

일부 스택 추적. 이전 ruby-mysql 보석 - 나는 environment.rb이 내가 사용했던 MySQL의 어댑터에 문제가 될 것으로 보인다

+0

자세한 정보를 제공해야합니다. 예를 들어 템플릿의 인코딩은 무엇입니까? 긴 스택 추적을 보여줄 수 있습니까? – gioele

+0

@gioele 죄송합니다. 자세한 내용을 추가하셨습니다. 감사. – sa125

답변

1

Encoding.default_internal = 'utf-8' 
Encoding.default_external = 'utf-8' 

을 설정하지만 난 내 템플릿에 특정 인코딩을 지정하지 않았다. mysql2으로 업그레이드했는데 문제가 해결 된 것으로 보입니다.

관련 문제