2012-10-03 5 views
1

안녕하세요, 일부 데이터를 저장하는 Oracle 데이터베이스가 있습니다. 영어 이외의 텍스트도 포함되어 있습니다. "테스트". 견적은 영어 따옴표가 아닙니다. "문제는 내가 레일 2.2.2 (Ruby 1.8.7)에서 검색 할 때,이 데이터베이스 모델의 필드 값이 erg보기에서 물음표를 반환하므로"TEST "가"TEST "가됩니다. 그러나 레일 3에서, 제대로 보이고있다.레일 2 데이터베이스 모델은 물음표가있는 잘못된 인코딩 된 문자열을 반환합니다.

값을 표시 ERB의 코드 것은 내가 가진 database.yml을에서 인코딩을 설정하는

User.first.description 

입니다 다음하지만

도움이되지 않습니다

인코딩 : UTF8 데이터 정렬 : utf8_unicode_ci

Ruby 1.9가 Ruby 1.8보다 인코딩 성능이 우수하기 때문일 수 있습니다. 이 문제를 해결할 방법이 있습니까?

답변

0

예, 루비 1.9는 1.8 이외의 인코딩을 처리합니다. 또한 Rails 3은 모든 것이 UTF-8인지 확인함으로써 인코딩을 더욱 쉽게 만듭니다.

대부분의 경우 귀하의 문제는 문자열이 Latin-1으로 인코딩되었고 레일 2가이 문자열을 UTF-8 인코딩으로 읽으려고합니다. 데이터베이스에 대해 시도 할 수있는 온라인 원숭이 패치가 여러 개 있거나 한 번만 스크립트를 사용하여 데이터베이스의 모든 필드를 다시 인코딩 할 수 있습니다. 내가 시도 할 수 있습니다 패치에 대한 링크는 Encodings, Unabridged (by Yehuda Katz)

+0

안녕 gylaz 한 않습니다

나는 더 인코딩 루비와 함께 작동 방법에 대한 이해를 위해,이 글을 읽는 것이 좋습니다. Oracle 데이터베이스를 사용하고 있습니다. – Shanison

+0

@Shanison 나는 그 (것)들을 편리하지 않다. 6 개월 전 1.8.7에서 1.9.3으로 업그레이드 할 때이 문제가 발생했습니다. mysql을 사용하고있었습니다. 인터넷 검색을 제안합니다 :) – gylaz

+0

감사 gylaz. 문제를 해결해야하는 레일과 루비 버전을 업그레이드 할 것입니다. – Shanison

관련 문제