루비에서 HTML 엔티티를 인코딩/디코딩하려면 어떻게 해야 합니까?
다음과 같은 HTML 엔티티를 디코딩하려고 합니다.'<'
되는 것'<'
.
오래된 보석(html_helpers)이 있는데 두 번이나 버려진 것 같습니다.
추천할 만한 것이 있습니까?저는 그것을 모델로 사용해야 할 것입니다.
문자를 인코딩하려면 다음을 사용합니다.CGI.escapeHTML
:
string = CGI.escapeHTML('test "escaping" <characters>')
그들을 해독하려면, 다음과 같은 것이 있습니다.CGI.unescapeHTML
:
CGI.unescapeHTML("test "unescaping" <characters>")
물론 그 전에 CGI 라이브러리를 포함해야 합니다.
require 'cgi'
또한 레일즈에 있는 경우 CGI를 사용하여 문자열을 인코딩할 필요가 없습니다.저기 있습니다.h
방법.
<%= h 'escaping <html>' %>
HTML 엔티티는 다음을 수행할 수 있습니다.
: 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!"
저는 노코기리 보석도 좋은 선택이라고 생각합니다.그것은 매우 안정적이고 거대한 기여 공동체를 가지고 있습니다.
샘플:
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!"
레일에서 문자를 디코딩하려면 다음을 사용합니다.
<%= raw '<html>' %>
그렇게,
<%= raw '<br>' %>
출력할 것입니다.
<br>
이렇게 하기 위해 새 종속성을 추가하지 않으려면 다음과 같이 하십시오.HTMLEntities
이미 사용 중입니다.Hpricot
탈출할 수도 있고 탈출할 수도 있습니다다음보다 훨씬 더 많은 작업을 처리합니다.CGI
:
Hpricot.uxs "foo bär"
=> "foo bär"
사용할 수 있습니다.htmlascii
보석:
Htmlascii.convert string
레일에서는 다음을 사용할 수 있습니다.ERB::Util.html_escape
그리고.ERB::Util.url_encode
.
뷰에서 다음과 같이 별칭이 지정됩니다.h
그리고.u
http://ruby-doc.org/stdlib-1.9.3/libdoc/erb/rdoc/ERB/Util.html
<% 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
'programing' 카테고리의 다른 글
R이 할 수 없는 MATLAB이 할 수 있는 것은 무엇입니까? (0) | 2023.06.25 |
---|---|
rxjs의 flatMap, mergeMap, switchMap 및 concatMap? (0) | 2023.06.25 |
로드 시 Vuex의 모듈에 데이터 전달 (0) | 2023.06.20 |
ORA-28001 암호가 만료된 후 SQL Developer에서 암호 변경 (0) | 2023.06.20 |
어떻게 콘다를 실행할 수 있습니까? (0) | 2023.06.20 |