2012-03-12 2 views
0

SQL Server에서 레거시 데이터베이스에 연결할 때 문제가 있습니다.액티브 코드 -sqlserver- 어댑터로 Encoding :: UndefinedConversionError

Encoding::UndefinedConversionError: "\xC3" from ASCII-8BIT to UTF-8 

데이터베이스는 라틴어와 같은 정렬을 사용 : 특수 문자 문자열을 읽고 나에게 다음과 같은 오류가 발생하는 (개발 SQLite의) 다른 데이터베이스에 삽입하려고 할 때 문제가 발생합니다. 내 freetds.conf 파일에 client charset = UTF-8을 설정했고, 내 database.yml 파일에 encoding: utf8이 있습니다.

실제로 FreeTDS를 드라이버가 올바른 전환을하고 보이지만, 문제가있는 문자열이 너무에 force_encoding('UTF-8')를 호출, 실제로 ESPAÑA에 대한 올바른 이진 표현 인 ESPA\xC3\x91A 때문에 어떤 이유로 루비 라이브러리는, 그것에 대해 인식하지 못합니다 문자열로 인해 오류가 사라집니다.

Binary data inserted for `string` type on column `email` 

답변

0

이 문제와 기타 문제를 내가 ODBC 드라이버를 가졌다를 해결 https://github.com/rails-sqlserver/tiny_tds 사용 : 내가 다른 모델에 문자열을 할당 할 때 그것은 나에게 다음과 같은 메시지를 제공 추가 참고로

.