2012-10-17 1 views
1

<%= request.remote_ip.encoding %>의 출력은 ASCII-8BIT입니다. 내가 SQLite는의 request.remote_ip 값을 저장하면왜 request.remote_ip.encoding은 ASCII-8BIT입니까?

는 "Binary data inserted for string type on column 'remote_ip'"메시지가있다.

그래서, SQLite는에 저장하기 전에 'force_encoding'해야합니까? 또는, request.remote_ip을 기본값 인 UTF-8 (또는 아마도 ASCII-7BIT)으로 설정할 수 있습니까?

OS X Lion 
ruby 1.9.3p194 
Rails 3.2.8 
sqlite3 (1.3.6) 
sqlite3-ruby (1.3.2) 
+0

아직도 문제가 있습니까? 그것은 여기 https://github.com/rails/rails/issues/2743 설명 - 나는 비슷한 문제에 직면하지만 내 경우에 유일한 옵션은 ('UTF-8') – HannesBenson

+0

@HannesBenson 어쩌면 당신은 넣을 수 있습니다 force_encoding를 사용하는 것이 었습니다 당신의 연구 결과가 답안에 들어있어 당신에게 신용을 줄 수 있습니다. – ohho

답변

0

비슷한 문제가 발생하여 여기에서 토론을 읽으십시오 : https://github.com/rails/rails/issues/2743. 주위의 유일한 방법은 force_encoding ('UTF-8')을 사용하여 remote_ip 문자열 인코딩이 utf-8인지 확인하는 것입니다.