[RUBY-ON-RAILS] 루비 1.8.7 (또는 레일 2.X)에서 () String.force_encoding
RUBY-ON-RAILS루비 1.8.7 (또는 레일 2.X)에서 () String.force_encoding
이 루비 1.9에서처럼 작동 그래서 루비 1.8.7 (또는 레일 2.X)에서 String.force_encoding ()를 사용하는 솔루션이 있습니까? 나는 뭔가에 대한 active_support을 필요로 읽을 수 있지만이 작업을하지 않습니다
$> 보석 목록 --local | 그렙 '레일 \ | activesupport'
activesupport (3.0.3, 2.3.8, 2.3.5)
rails (2.3.8, 2.3.5)
$> 루비 -v
ruby 1.8.7 (2010-08-16 patchlevel 302) [i686-darwin10.4.0]
$> 레일 -v
Rails 2.3.8
IRB :
> require "rubygems"
=> true
> require "active_support"
=> true
> "asdf".force_encoding("UTF-8")
NoMethodError: undefined method `force_encoding' for "asdf":String
> String.respond_to?(:force_encoding)
=> false
해결법
-
==============================
1.1.9는 문자열의 인코딩 필드를 변경한다는 것이다 유일한 일이 force_encoding가하는, 실제로는 문자열의 바이트를 수정하지 않습니다.
1.9는 문자열의 인코딩 필드를 변경한다는 것이다 유일한 일이 force_encoding가하는, 실제로는 문자열의 바이트를 수정하지 않습니다.
force_encoding은 어떤 조합 없을 것이다 그래서 루비 1.8, 문자열 인코딩의 개념이 없습니다. 당신은 1.8 및 1.9에 동일한 코드를 실행할 수 있도록하려면이처럼 직접 추가 할 수 있습니다 :
class String def force_encoding(enc) self end end
물론 당신은 그들이 매우 다르게이 문제를 처리하기 때문에 인코딩이, 1.8 및 1.9에서 동일한를 작동하도록해야 할 것을 다른 일이있을 것입니다.
-
==============================
2.이 두 루비 1.8.7과 루비 1.9 당신에게 문자열 #의 to_my_utf8을 줄 것이다 :
이 두 루비 1.8.7과 루비 1.9 당신에게 문자열 #의 to_my_utf8을 줄 것이다 :
require 'iconv' class String def to_my_utf8 ::Iconv.conv('UTF-8//IGNORE', 'UTF-8', self + ' ')[0..-2] end end
그리고...
?> "asdf".to_my_utf8 => "asdf"
폴 Battley에서 영감 또한 remote_table 보석에 내 나이가 작품의 일부를 기억.
from https://stackoverflow.com/questions/4583924/string-force-encoding-in-ruby-1-8-7-or-rails-2-x by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 루비 1.9.2 및 레일 3 열 수 없습니다 레일 콘솔 (0) | 2020.02.25 |
---|---|
[RUBY-ON-RAILS] 무엇 MySQL과 mysql2 보석의 차이 (0) | 2020.02.25 |
[RUBY-ON-RAILS] (우리가 이상적으로 도우미에서 전화로) 우리는보기에서 컨트롤러의 메소드를 호출 할 수 있습니까? (0) | 2020.02.24 |
[RUBY-ON-RAILS] catch되지 않은 오류 ReferenceError : 정의되지 않은 반응 (0) | 2020.02.24 |
[RUBY-ON-RAILS] 레일 : POST 요청을 할 때 CSRF 토큰 진위를 확인할 수 없습니다 (0) | 2020.02.24 |