2011-04-18 7 views
0

루비 신 루비 HTML 엔티티 문제

require 'htmlentities' 
coder = HTMLEntities.new 
puts coder.decode('°') 

현재 명령 줄 (윈도우) 출력은 ... 방금도 기호를 인쇄하려면 다음을 얻는 방법을 궁금 : Â °

감사!

답변

1

HTMLEntities.decode은 UTF-8로 문자열을 반환하고 콘솔이 해당 인코딩을 질식합니다. puts으로 전달하기 전에 문자열을 다시 인코딩해야합니다.

루비 1.9.2 사용하는 경우, 그것은 코드가합니다 (StringEncoding 문서를 기반으로) 매우 간단 같습니다

puts coder.decode('&deg;').encode(Encoding.find('<Whatever-Windows-Uses>')) 

당신은 전에 몇 가지 다른 인코딩을 시도해야 할 수도 있습니다 당신의 콘솔이 이해할 수있는 것을 찾으십시오.

이전 버전의 Ruby에서는 다시 인코딩 할 수있는 코드가 Iconv 인 것으로 보입니다 (this question - 반대 방향으로 가고있는 것 같습니다).

희망이 도움이됩니다.

+0

감사합니다. iso-8859-1과 호환됩니다. – Rob