반응형
Ruby에서 HTML 엔터티를 어떻게 인코딩 / 디코딩합니까?
나는 다음과 같은 몇 가지 HTML 엔티티 디코딩하려고 '<'
되고를 '<'
.
오래된 보석 ( html_helpers )이 있지만 두 번 버려진 것으로 보입니다.
어떤 추천? 모델에서 사용해야합니다.
HTMLEntities 는 다음을 수행 할 수 있습니다.
: jmglov@laurana; sudo gem install htmlentities
Successfully installed htmlentities-4.2.4
: jmglov@laurana; irb
irb(main):001:0> require 'htmlentities'
=> []
irb(main):002:0> HTMLEntities.new.decode "¡I'm highly annoyed with character references!"
=> "¡I'm highly annoyed with character references!"
문자를 인코딩하려면 다음을 사용할 수 있습니다 CGI.escapeHTML
.
string = CGI.escapeHTML('test "escaping" <characters>')
그것들을 해독하기 위해 CGI.unescapeHTML
:
CGI.unescapeHTML("test "unescaping" <characters>")
물론 그 전에 CGI 라이브러리를 포함시켜야합니다.
require 'cgi'
Rails에 있다면 문자열을 인코딩하기 위해 CGI를 사용할 필요가 없습니다. 있다 h
방법.
<%= h 'escaping <html>' %>
노코 기리 보석 도 좋은 선택 이라고 생각 합니다. 매우 안정적이며 커뮤니티에 큰 기여를하고 있습니다.
견본:
a = Nokogiri::HTML.parse "foo bär"
a.text
=> "foo bär"
또는
a = Nokogiri::HTML.parse "¡I'm highly annoyed with character references!"
a.text
=> "¡I'm highly annoyed with character references!"
Rails에서 문자를 해독하려면 다음을 사용하십시오.
<%= raw '<html>' %>
그래서,
<%= raw '<br>' %>
출력 할 것이다
<br>
이 작업을 수행하기 위해 새 종속성을 추가하지 않으려는 경우 (예 HTMLEntities
:) 이미 사용중인 Hpricot
경우 이스케이프 및 이스케이프를 모두 해제 할 수 있습니다. 그것은 훨씬 더 많은 것을 처리합니다 CGI
:
Hpricot.uxs "foo bär"
=> "foo bär"
htmlascii
보석 을 사용할 수 있습니다 :
Htmlascii.convert string
<% str="<h1> Test </h1>" %>
result: < h1 > Test < /h1 >
<%= CGI.unescapeHTML(str).html_safe %>
참고 URL : https://stackoverflow.com/questions/1600526/how-do-i-encode-decode-html-entities-in-ruby
반응형
'IT' 카테고리의 다른 글
iOS 6의 라벨 정렬-UITextAlignment 사용 중단 (0) | 2020.05.13 |
---|---|
인터페이스 생성시기를 어떻게 알 수 있습니까? (0) | 2020.05.13 |
새로운 레일 대 생성 (0) | 2020.05.13 |
해시 및 범위 기본 키란 무엇입니까? (0) | 2020.05.13 |
로컬로 Facebook Connect를 테스트하는 방법 (0) | 2020.05.13 |