2012-05-14 2 views
2

레일스 뷰에도 기호를 포함하려고합니다. 학위 기호 (°)를 .html.erb 파일에 직접 입력하면 브라우저에서 정상적인 방법으로 표시됩니다.레일스 뷰의 유니 코드 심볼

하지만이 기호는 문자열을 통해보기 위해 전송해야합니다. 그리고 여기서 문제가 시작됩니다.

나는이 넣을 경우

<%= 176.chr %> 
보기에

, 또는 루비 소스에

.... + 176.chr 

을 넣어, 내가 얻을 레일은 UTF 모든 뷰를 인식하게하는 방법

incompatible character encodings: UTF-8 and ASCII-8BIT 

-8 기본적으로?

+0

utf-8이 아닌 것은 사용자의보기가 아닙니다.이 값은 176.chr이며 기본값은 ASCII-8BIT> 127입니다. 단일 바이트 176은 유효한 utf-8 문자가 아닙니다 –

답변

3

이 기호 대신 특수 대체품을 사용할 수 있습니다 (HTML : &deg;).

http://www.w3schools.com/charsets/ref_html_entities_4.asp

당신>은 <% = % 밖에, HTML에 넣어해야합니다. 또는 원시 도우미를 사용하십시오. 또는 html_safe로 표시하십시오. 그런데 chr에서 인코딩을 제공하려고 했습니까? 176.chr(__ENCODING__) (__ENCODING__은 여기서는 자리 표시자가 아니며 Ruby는 176.chr (Encoding :: UTF_8)과 같습니다. 이러한 모든 접근 방식이 효과가 있습니다.

+0

기호를 HTML 소스에 삽입하는 것에 대한 답은 맞을 것입니다. 그러나 우리는 Ruby 문자열에서이 문자를 가져 와서 뷰의 출력에 넣는 것에 대해 이야기하고 있습니다. – Paul

+0

'°'과 같은 코드를 읽고 기억하고 유지하는 것이 훨씬 쉽습니다. 이것을 조언으로 생각하십시오. 문제를 해결 했더라도 코드 대신 엔티티를 사용하십시오. – jdoe

+0

좋아요, '°'.html_safe가 속임수를 쓰는 것 같지만 앞으로 임의의 charcode가있는 문자를 삽입 할 수 있기를 바랍니다. – Paul

2

application.rb/config/ 내부에 이미 지정되어 있어야합니다.

관련 부분은 다음과 같아야합니다

module App 
    class Application < Rails::Application 
    # Configure the default encoding used in templates for Ruby 1.9.                                  
    config.encoding = "utf-8"  
    end 
end 

나는 여기에 문제가 당신이 UTF-8의 몸에 삽입해야 ASCII-8 비트 문자를 생성하는 것으로 생각합니다. 당신이 당신의 루비 파일의 첫 번째 줄에이 마법 문자열을 넣어 루비 코드에서 UTF-8 문자열을 당신이 사용하려는 경우

: 루비 1.9의 인코딩에

# encoding: UTF-8 

세부 사항을 발견 할 수있다 here

+0

config.encoding = "utf-8"이 이미 있습니다. # 인코딩 : UTF-8이 작동하지 않습니다. – Paul