2009-10-30 5 views
6

Ruby에서 어떻게 할 수 있습니까? 나는이 같은 노력 òHTML 특수 엔터티에서 Ruby로 강조 표시된 문자로 변환하는 방법

:

# coding: utf-8 
require 'rubygems' 
require 'htmlentities' 
require 'unicode' 

coder = HTMLEntities.new 
string = "Scròfina" 
puts coder.encode(string, :named) 

하지만 나는이 (에서 : http://htmlentities.rubyforge.org/) : 얻을

을 즉
puts some_method("ò") 
# => "ò" 

자신의 HTML 버전으로 ò 같은 악센트 문자로 변환
/Library/Ruby/Gems/1.8/gems/htmlentities-4.2.0/lib/htmlentities/encoder.rb:85:in `unpack': malformed UTF-8 character (expected 2 bytes, given 1 bytes) (ArgumentError) 
from /Library/Ruby/Gems/1.8/gems/htmlentities-4.2.0/lib/htmlentities/encoder.rb:85:in `encode_decimal' 
from (eval):2:in `encode_extended' 
from /Library/Ruby/Gems/1.8/gems/htmlentities-4.2.0/lib/htmlentities/encoder.rb:18:in `encode' 
from /Library/Ruby/Gems/1.8/gems/htmlentities-4.2.0/lib/htmlentities/encoder.rb:18:in `gsub!' 
from /Library/Ruby/Gems/1.8/gems/htmlentities-4.2.0/lib/htmlentities/encoder.rb:18:in `encode' 
from /Library/Ruby/Gems/1.8/gems/htmlentities-4.2.0/lib/htmlentities.rb:74:in `encode' 
from unicode_pleasure.rb:8 

감사합니다.

  • 내가 명시 적으로 예를 들어 작품을 만들기 위해 $ KCODE을 설정했다
+0

htmlentities 4.0.0을 사용하여 예제를 테스트 한 결과 모든 것이 잘 동작합니다. 별로 도움이되지 않습니다. : –

답변

12

레오나르도. 또한 소스 파일이 실제로 UTF-8로 인코딩 된 인지 확인하십시오.!

# coding: utf-8 
require 'rubygems' 
require 'htmlentities' 
require 'unicode' 
$KCODE = 'UTF-8' 
coder = HTMLEntities.new 
string = "Scròfina" 
puts coder.encode(string, :named) 
+0

작동합니다! 감사합니다. 조나단! (나는 투표 할 수 없습니다. 그다지 평판이 좋지 않습니다 .--( –

+0

대답을 "수락"할 수 있습니다. –

+0

명명 된 매개 변수는 저에게 어떤 차이가 있었습니까? . 감사. –

관련 문제