복붙노트

[RUBY-ON-RAILS] 호환되지 않는 문자 인코딩 : ASCII-8BIT와 UTF-8

RUBY-ON-RAILS

호환되지 않는 문자 인코딩 : ASCII-8BIT와 UTF-8

루비 1.9.2 사용하고 3.0.5 레일

나는 다음과 같은 오류가 있습니다 :

그것은 내가 생각하는 데이터베이스와는 아무 상관이있다.

이 오류는 뷰 (단지 사업부의 HAML 호출)이 줄에 일어나고있다 :

#content

전체 스택 :

    ActionView::Template::Error (incompatible character encodings: ASCII-8BIT and UTF-8):
        21:                     -flash.each do |name, msg|
        22:                         =content_tag :div, msg, :id => "flash_#{name}"
        23:                         %div.clear                      
        24:                     #content                                        
        25:                         = yield
        26:             = render :partial => "layouts/grid_right" if render_grid_right?
        27:             = render :partial => "layouts/footer"
      app/views/layouts/application.html.haml:24:in `_app_views_layouts_application_html_haml___4380000789490545718_2180251300_2717546578298801795'
      actionpack (3.0.5) lib/action_view/template.rb:135:in `block in render'
      activesupport (3.0.5) lib/active_support/notifications.rb:54:in `instrument'
      actionpack (3.0.5) lib/action_view/template.rb:127:in `render'
      actionpack (3.0.5) lib/action_view/render/layouts.rb:80:in `_render_layout'
      actionpack (3.0.5) lib/action_view/render/rendering.rb:62:in `block in _render_template'
      activesupport (3.0.5) lib/active_support/notifications.rb:52:in `block in instrument'
      activesupport (3.0.5) lib/active_support/notifications/instrumenter.rb:21:in `instrument'
      activesupport (3.0.5) lib/active_support/notifications.rb:52:in `instrument'
      actionpack (3.0.5) lib/action_view/render/rendering.rb:56:in `_render_template'
      actionpack (3.0.5) lib/action_view/render/rendering.rb:26:in `render'
      haml (3.0.25) lib/haml/helpers/action_view_mods.rb:13:in `render_with_haml'
      actionpack (3.0.5) lib/abstract_controller/rendering.rb:115:in `_render_template'
      actionpack (3.0.5) lib/abstract_controller/rendering.rb:109:in `render_to_body'
      actionpack (3.0.5) lib/action_controller/metal/renderers.rb:47:in `render_to_body'
      actionpack (3.0.5) lib/action_controller/metal/compatibility.rb:55:in `render_to_body'
      actionpack (3.0.5) lib/abstract_controller/rendering.rb:102:in `render_to_string'
      actionpack (3.0.5) lib/abstract_controller/rendering.rb:93:in `render'
      actionpack (3.0.5) lib/action_controller/metal/rendering.rb:17:in `render'
      actionpack (3.0.5) lib/action_controller/metal/instrumentation.rb:40:in `block (2 levels) in render'
      activesupport (3.0.5) lib/active_support/core_ext/benchmark.rb:5:in `block in ms'
      /Users/michaelkoper/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/benchmark.rb:309:in `realtime'
      activesupport (3.0.5) lib/active_support/core_ext/benchmark.rb:5:in `ms'
      actionpack (3.0.5) lib/action_controller/metal/instrumentation.rb:40:in `block in render'
      actionpack (3.0.5) lib/action_controller/metal/instrumentation.rb:78:in `cleanup_view_runtime'
      activerecord (3.0.5) lib/active_record/railties/controller_runtime.rb:15:in `cleanup_view_runtime'
      actionpack (3.0.5) lib/action_controller/metal/instrumentation.rb:39:in `render'
      actionpack (3.0.5) lib/action_controller/metal/implicit_render.rb:10:in `default_render'
      actionpack (3.0.5) lib/action_controller/metal/mime_responds.rb:261:in `block in retrieve_response_from_mimes'
      actionpack (3.0.5) lib/action_controller/metal/mime_responds.rb:192:in `call'
      actionpack (3.0.5) lib/action_controller/metal/mime_responds.rb:192:in `respond_to'
      app/controllers/home_controller.rb:9:in `index'
      actionpack (3.0.5) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
      actionpack (3.0.5) lib/abstract_controller/base.rb:150:in `process_action'
      actionpack (3.0.5) lib/action_controller/metal/rendering.rb:11:in `process_action'
      actionpack (3.0.5) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
      activesupport (3.0.5) lib/active_support/callbacks.rb:445:in `_run__3968431659371141392__process_action__3163094469870857953__callbacks'
      activesupport (3.0.5) lib/active_support/callbacks.rb:409:in `_run_process_action_callbacks'
      activesupport (3.0.5) lib/active_support/callbacks.rb:93:in `run_callbacks'
      actionpack (3.0.5) lib/abstract_controller/callbacks.rb:17:in `process_action'
      actionpack (3.0.5) lib/action_controller/metal/instrumentation.rb:30:in `block in process_action'
      activesupport (3.0.5) lib/active_support/notifications.rb:52:in `block in instrument'
      activesupport (3.0.5) lib/active_support/notifications/instrumenter.rb:21:in `instrument'
      activesupport (3.0.5) lib/active_support/notifications.rb:52:in `instrument'
      actionpack (3.0.5) lib/action_controller/metal/instrumentation.rb:29:in `process_action'
      actionpack (3.0.5) lib/action_controller/metal/rescue.rb:17:in `process_action'
      actionpack (3.0.5) lib/abstract_controller/base.rb:119:in `process'
      actionpack (3.0.5) lib/abstract_controller/rendering.rb:41:in `process'
      actionpack (3.0.5) lib/action_controller/metal.rb:138:in `dispatch'
      actionpack (3.0.5) lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'
      actionpack (3.0.5) lib/action_controller/metal.rb:178:in `block in action'
      actionpack (3.0.5) lib/action_dispatch/routing/route_set.rb:62:in `call'
      actionpack (3.0.5) lib/action_dispatch/routing/route_set.rb:62:in `dispatch'
      actionpack (3.0.5) lib/action_dispatch/routing/route_set.rb:27:in `call'
      rack-mount (0.6.13) lib/rack/mount/route_set.rb:148:in `block in call'
      rack-mount (0.6.13) lib/rack/mount/code_generation.rb:93:in `block in recognize'
      rack-mount (0.6.13) lib/rack/mount/code_generation.rb:68:in `optimized_each'
      rack-mount (0.6.13) lib/rack/mount/code_generation.rb:92:in `recognize'
      rack-mount (0.6.13) lib/rack/mount/route_set.rb:139:in `call'
      actionpack (3.0.5) lib/action_dispatch/routing/route_set.rb:492:in `call'
      haml (3.0.25) lib/sass/plugin/rack.rb:41:in `call'
      actionpack (3.0.5) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
      actionpack (3.0.5) lib/action_dispatch/middleware/head.rb:14:in `call'
      rack (1.2.1) lib/rack/methodoverride.rb:24:in `call'
      actionpack (3.0.5) lib/action_dispatch/middleware/params_parser.rb:21:in `call'
      actionpack (3.0.5) lib/action_dispatch/middleware/flash.rb:182:in `call'
      actionpack (3.0.5) lib/action_dispatch/middleware/session/abstract_store.rb:149:in `call'
      actionpack (3.0.5) lib/action_dispatch/middleware/cookies.rb:302:in `call'
      activerecord (3.0.5) lib/active_record/query_cache.rb:32:in `block in call'
      activerecord (3.0.5) lib/active_record/connection_adapters/abstract/query_cache.rb:28:in `cache'
      activerecord (3.0.5) lib/active_record/query_cache.rb:12:in `cache'
      activerecord (3.0.5) lib/active_record/query_cache.rb:31:in `call'
      activerecord (3.0.5) lib/active_record/connection_adapters/abstract/connection_pool.rb:354:in `call'
      actionpack (3.0.5) lib/action_dispatch/middleware/callbacks.rb:46:in `block in call'
      activesupport (3.0.5) lib/active_support/callbacks.rb:415:in `_run_call_callbacks'
      actionpack (3.0.5) lib/action_dispatch/middleware/callbacks.rb:44:in `call'
      rack (1.2.1) lib/rack/sendfile.rb:107:in `call'
      actionpack (3.0.5) lib/action_dispatch/middleware/remote_ip.rb:48:in `call'
      actionpack (3.0.5) lib/action_dispatch/middleware/show_exceptions.rb:47:in `call'
      railties (3.0.5) lib/rails/rack/logger.rb:13:in `call'
      rack (1.2.1) lib/rack/runtime.rb:17:in `call'
      activesupport (3.0.5) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
      rack (1.2.1) lib/rack/lock.rb:11:in `block in call'
      <internal:prelude>:10:in `synchronize'
      rack (1.2.1) lib/rack/lock.rb:11:in `call'
      actionpack (3.0.5) lib/action_dispatch/middleware/static.rb:30:in `call'
      railties (3.0.5) lib/rails/application.rb:168:in `call'
      railties (3.0.5) lib/rails/application.rb:77:in `method_missing'
      railties (3.0.5) lib/rails/rack/log_tailer.rb:14:in `call'
      rack (1.2.1) lib/rack/content_length.rb:13:in `call'
      rack (1.2.1) lib/rack/chunked.rb:15:in `call'
      rack (1.2.1) lib/rack/handler/mongrel.rb:67:in `process'
      mongrel (1.2.0.pre2) lib/mongrel.rb:165:in `block in process_client'
      mongrel (1.2.0.pre2) lib/mongrel.rb:164:in `each'
      mongrel (1.2.0.pre2) lib/mongrel.rb:164:in `process_client'
      mongrel (1.2.0.pre2) lib/mongrel.rb:291:in `block (2 levels) in run'

내 보석 :

        Using rake (0.8.7) 
        Using RedCloth (4.2.2) 
        Using abstract (1.0.0) 
        Using activesupport (3.0.5) 
        Using builder (2.1.2) 
        Using i18n (0.5.0) 
        Using activemodel (3.0.5) 
        Using erubis (2.6.6) 
        Using rack (1.2.1) 
        Using rack-mount (0.6.13) 
        Using rack-test (0.5.7) 
        Using tzinfo (0.3.24) 
        Using actionpack (3.0.5) 
        Using mime-types (1.16) 
        Using polyglot (0.3.1) 
        Using treetop (1.4.9) 
        Using mail (2.2.15) 
        Using actionmailer (3.0.5) 
        Using arel (2.0.9) 
        Using activerecord (3.0.5) 
        Using activeresource (3.0.5) 
        Using authlogic (2.1.6) 
        Using xml-simple (1.0.14) 
        Using aws-s3 (0.6.2) 
        Using block_helpers (0.3.3) 
        Using bundler (1.0.10) 
        Using diff-lcs (1.1.2) 
        Using json (1.4.6) 
        Using gherkin (2.3.4) 
        Using term-ansicolor (1.0.5) 
        Using cucumber (0.10.0) 
        Using cucumber-rails (0.3.2) 
        Using daemons (1.0.10) 
        Using database_cleaner (0.6.5) 
        Using factory_girl (1.3.3) 
        Using faker (0.9.5) 
        Using formtastic (1.2.3) 
        Using gem_plugin (0.2.3) 
        Using haml (3.0.25) 
        Using thor (0.14.6) 
        Using railties (3.0.5) 
        Using rails (3.0.5) 
        Using kaminari (0.10.4) 
        Using mongrel (1.2.0.pre2) 
        Using mysql2 (0.2.6) 
        Using nokogiri (1.4.4) 
        Using paperclip (2.3.8) 
        Using rspec-core (2.5.1) 
        Using rspec-expectations (2.5.0) 
        Using rspec-mocks (2.5.0) 
        Using rspec (2.5.0) 
        Using yard (0.6.4) 
        Using pickle (0.4.4) 
        Using populator (1.0.0) 
        Using rspec-rails (2.5.0) 
        Using webrat (0.7.3) 

해결법

  1. ==============================

    1.난 당신이 중 하나를 복사하는 의심을 가지고 / 파일에 당신의 HAML 템플릿의 일부 붙여 넣기, 또는 비 유니 코드 / UTF-8이 아닌 친화적 인 편집기로 노력하고 있습니다.

    난 당신이 중 하나를 복사하는 의심을 가지고 / 파일에 당신의 HAML 템플릿의 일부 붙여 넣기, 또는 비 유니 코드 / UTF-8이 아닌 친화적 인 편집기로 노력하고 있습니다.

    당신이 UTF-8 친화적 인 편집기에서 처음부터 해당 파일을 다시 만들 수 있습니다 경우를 참조하십시오. 이 모든 플랫폼에 대한 충분한은이 수정 여부 문제를 참조하십시오. #content가있는 라인을 삭제하고 수동으로 다시 입력하여 시작합니다.

  2. ==============================

    2.나는 다음 단계를 수행하여 그것을 해결 :

    나는 다음 단계를 수행하여 그것을 해결 :

    http://rorguide.blogspot.com/2011/06/incompatible-character-encodings-ascii.html

  3. ==============================

    3.이 문제를 일으키는 정확한 라인을 찾아보십시오 다음 코딩 UTF8, 나를 위해 일한이 솔루션을 적용합니다.

    이 문제를 일으키는 정확한 라인을 찾아보십시오 다음 코딩 UTF8, 나를 위해 일한이 솔루션을 적용합니다.

  4. ==============================

    4.ASCII-8BIT은 일반 0-0x7f ASCII 문자 세트 위의 문자 루비의 설명입니다, 그것은 단일 바이트 문자입니다. 일반적으로 그 ISO-8859-1 같은, 또는 형제 자매 중 하나가 될 것입니다.

    ASCII-8BIT은 일반 0-0x7f ASCII 문자 세트 위의 문자 루비의 설명입니다, 그것은 단일 바이트 문자입니다. 일반적으로 그 ISO-8859-1 같은, 또는 형제 자매 중 하나가 될 것입니다.

    문제를 일으키는 문자를 식별 할 수있는 경우에, 당신은 UTF-8로 해당 문자의 문자 집합 사이의 변환 루비 1.9.2를 알 수 있습니다.

    제임스 그레이는 이러한 문제의 종류와이를 처리하는 방법에 대해 이야기 블로그의 시리즈를 썼다. 나는 그들을 통해 갈 것을 권 해드립니다.

    즉 일반적으로 두 개의 문자열을 연결하려고하고, 하나가 다른 문자열의 문자 집합에 매핑되지 않는 문자가 포함되어 있기 때문에 발생합니다. 이 UTF-8로 등가물이없는 ISO-8859-1 문자가 있고, 그 반대의 그 비 호환성으로 가입 핸들에 문자열의 단계에 프로그래머를 필요로하는 방법.

  5. ==============================

    5.당신이 force_encoding으로 UTF8을 강제 할 수 있습니다 (인코딩 : UTF_8) :

    당신이 force_encoding으로 UTF8을 강제 할 수 있습니다 (인코딩 : UTF_8) :

    예:

    <%= yield.force_encoding(Encoding::UTF_8) %>
    
  6. ==============================

    6.HAML에 대한 인코딩 힌트를 넣어 :

    HAML에 대한 인코딩 힌트를 넣어 :

    -# coding: UTF-8
    

    상단에 HAML 페이지의 왼쪽.

  7. ==============================

    7.나는 보석 패키지 mysql2를 설치했습니다.

    나는 보석 패키지 mysql2를 설치했습니다.

    gem install mysql2
    

    그리고 나는 database.yml을에 mysql2에 어댑터를 변경했습니다.

  8. ==============================

    8.문제는 iOS 버전의 주위에 잘못된 따옴표를 사용했다. 반드시 모든 따옴표 '가 아니라'또는 '확인하십시오.

    문제는 iOS 버전의 주위에 잘못된 따옴표를 사용했다. 반드시 모든 따옴표 '가 아니라'또는 '확인하십시오.

    https://github.com/CocoaPods/CocoaPods/issues/829

  9. ==============================

    9.나는 비슷한 문제를 경험했습니다. 내가 가지고 있었지만 UTF-8 인코딩 해결 (mysql2와 Encoding.default_external = 인코딩 :: UTF_8 ...) 호환되지 않는 문자 인코딩 : UTF-8 및 ASCII-8BIT 내가 예를 들어, 잘못된 도우미 매개 변수를 사용하는 경우 발생 f.button는 : -하지만 f.button "Zrušiť"완벽하게 작동합니다 - "Zrušiť는"제출 오류를 인코딩 던졌습니다.

    나는 비슷한 문제를 경험했습니다. 내가 가지고 있었지만 UTF-8 인코딩 해결 (mysql2와 Encoding.default_external = 인코딩 :: UTF_8 ...) 호환되지 않는 문자 인코딩 : UTF-8 및 ASCII-8BIT 내가 예를 들어, 잘못된 도우미 매개 변수를 사용하는 경우 발생 f.button는 : -하지만 f.button "Zrušiť"완벽하게 작동합니다 - "Zrušiť는"제출 오류를 인코딩 던졌습니다.

  10. ==============================

    10.1.9.3에 루비 1.8.7에서 응용 프로그램을 마이그레이션하는 동안 오류가 발생하여 만 생산에서 발생했습니다. 내가 내 Memcache의 저장소에 일부 남은 음식을 한 것으로 밝혀졌다. 내 응용 프로그램의 현재 인코딩 민감한 루비 1.9.3 버전의 새로운 UTF-8로 된 ASCII-8 비트 값을 혼합했습니다.

    1.9.3에 루비 1.8.7에서 응용 프로그램을 마이그레이션하는 동안 오류가 발생하여 만 생산에서 발생했습니다. 내가 내 Memcache의 저장소에 일부 남은 음식을 한 것으로 밝혀졌다. 내 응용 프로그램의 현재 인코딩 민감한 루비 1.9.3 버전의 새로운 UTF-8로 된 ASCII-8 비트 값을 혼합했습니다.

    그것은 나를 위해 그것을 해결하기 위해 캐시를 플러시 한 간단했다.

  11. ==============================

    11.당신이 사용할 수있는 변수 인코딩은 "냉동 문자열을 수정할 수 없습니다"오류를 방지하기 위해 : var.dup.force_encoding (인코딩 : ASCII 8 비트)를 또는 var.dup.force_encoding (인코딩 :: UTF_8)

    당신이 사용할 수있는 변수 인코딩은 "냉동 문자열을 수정할 수 없습니다"오류를 방지하기 위해 : var.dup.force_encoding (인코딩 : ASCII 8 비트)를 또는 var.dup.force_encoding (인코딩 :: UTF_8)

  12. ==============================

    12.나는 사용자 정의 커피 스크립트 파일에 유사한 문제가 있었다. 나는 "맥 OS 클래식"을 "유닉스 / 리눅스"에서 인코딩 endline을 변경하여 그것을 해결

    나는 사용자 정의 커피 스크립트 파일에 유사한 문제가 있었다. 나는 "맥 OS 클래식"을 "유닉스 / 리눅스"에서 인코딩 endline을 변경하여 그것을 해결

  13. ==============================

    13.유사한 문제에 대한 레일 - 라텍스 보석 리드의 pdf 문서의 생성. 나는 레이아웃 / application.pdf.erb에 수정하여이 문제를 해결

    유사한 문제에 대한 레일 - 라텍스 보석 리드의 pdf 문서의 생성. 나는 레이아웃 / application.pdf.erb에 수정하여이 문제를 해결

    \begin{document}
    
    <%= yield.force_encoding("UTF-8") %>
    
    
    \end{document}
    
  14. ==============================

    14.그것은 내가 '형'매개 변수를 지정 잊었 때문에이 문제를 충족하는 것이 매우 이상하다. 예컨대 :

    그것은 내가 '형'매개 변수를 지정 잊었 때문에이 문제를 충족하는 것이 매우 이상하다. 예컨대 :

    add_column :cms_push_msgs, :android_title
    

    이는 있어야한다 :

    add_column :cms_push_msgs, :android_content, :string 
    
  15. ==============================

    15.그냥 기록을 위해 : 나를 위해 그것을 분명이 기본적으로 US-ASCII 8 비트와 함께 일하고있다 ... 그것은 'MySQL을'이라는 보석 이었다는 것을 밝혀졌다. (2 여기서 중요한 포인트입니다) 보석이라고 mysql2로 변경 그래서 내 모든 문제를 해결했다.

    그냥 기록을 위해 : 나를 위해 그것을 분명이 기본적으로 US-ASCII 8 비트와 함께 일하고있다 ... 그것은 'MySQL을'이라는 보석 이었다는 것을 밝혀졌다. (2 여기서 중요한 포인트입니다) 보석이라고 mysql2로 변경 그래서 내 모든 문제를 해결했다.

    마이클 코 페르 분명히 mysql2 설치했다하지만 난 ..이 경우 다른 사람이이 문제를 가지고 게시 (알아 내기 위해 좀 시간이 걸렸) - 보석 목록 위에 게시 @ 나는 보았다.

    이 대답을 싫어하는 경우 의견을 기쁘게하고 나는 그것을 삭제합니다.

    P.S : 독일어 움라우트 (ä, ö 및 ü)는 MySQL과 그것을 밖으로 나사

  16. ==============================

    16.제대로 루비 1.8에 구문 분석 루비 1.9.2에 CSV 파일을 구문 분석 할 때 저도 같은 문제가 있었다. 여기 답을 발견했다. 루비 CSV 모듈과 CSV 파일을 열 때 그 다음으로 enconding UTF-8을 지정하는 것이 필요하다 :

    제대로 루비 1.8에 구문 분석 루비 1.9.2에 CSV 파일을 구문 분석 할 때 저도 같은 문제가 있었다. 여기 답을 발견했다. 루비 CSV 모듈과 CSV 파일을 열 때 그 다음으로 enconding UTF-8을 지정하는 것이 필요하다 :

    CSV.foreach("file.txt", encoding: "UTF-8") do |row|
       # foo and bar correctly encoded
       foo, bar, ... = row
    end
    
  17. ==============================

    17.나는 비슷한 문제와 보석 문자열 스크럽은 자동적으로 나를 위해 그것을 고정했다. https://github.com/hsbt/string-scrub 주어진 문자열이 유효 바이트 순서가 유니 코드 대체 문자 ()와 새로운 문자열이 반환됩니다로 대체되는 다음 잘못된 바이트 시퀀스가 ​​포함 된 경우.

    나는 비슷한 문제와 보석 문자열 스크럽은 자동적으로 나를 위해 그것을 고정했다. https://github.com/hsbt/string-scrub 주어진 문자열이 유효 바이트 순서가 유니 코드 대체 문자 ()와 새로운 문자열이 반환됩니다로 대체되는 다음 잘못된 바이트 시퀀스가 ​​포함 된 경우.

  18. ==============================

    18.나는 최근 프로젝트 레일 4.1, 루비 2.3.3에서 같은 암호 같은 오류 메시지, 레이아웃 application.html.haml의 스택 트레이스의 기원을 가지고

    나는 최근 프로젝트 레일 4.1, 루비 2.3.3에서 같은 암호 같은 오류 메시지, 레이아웃 application.html.haml의 스택 트레이스의 기원을 가지고

    야생 거위 체이스 후, 범인은 최근 모든 페이지의 바닥 글에 추가되었던 UTF-8 문자였다. 어떤 이상한 이유로 오류가 간헐적으로 만 표시됩니다.

    해당 HTML 이스케이프 시퀀스 & # xHHHH와 UTF-8 문자를 교체; 이 문제를 해결했다.

    나는이 다른 사람에게 미래의 어떤 시간을 절약 바랍니다 ..

  19. from https://stackoverflow.com/questions/5286117/incompatible-character-encodings-ascii-8bit-and-utf-8 by cc-by-sa and MIT license