2011-09-26 2 views
0

데이터베이스 테이블에 utf8_general_ci 데이터 정렬이있는 열이 있습니다.레일 3 Ruby 1.9.2 : 콘솔 및 뷰에서 UTF-8 문자가 깨져 표시됩니다.

database.yml을 인코딩 가지고 UTF8을

는 config/application.rb을 가지고 config.encoding = "UTF-"I MySQL의 커맨드 라인을 사용하여 직접 그 표시 필드를 조회

을 : 3√5^2 = 5^(2/3); 5^(2/3) = 3√5^2

콘솔을 사용하여 (또는보기에 표시) 필드를 출력하면 3시 5 분 2 초 = 5^(2/3); 5^(2/3) = 3 * 5^2

sqrt 기호가 엉망입니다.

내가 뭘 잘못하고 있니?

답변

1

오랜 연구 끝에 해결책을 찾았습니다. 문제의 열이 이중으로 인코딩 된 것 같습니다. 그들은 Latin1 데이터 정렬을 사용했고 올바르게 UTF8로 변환되지 않았습니다. 작업 하지

제안 된 솔루션은 UTF8 텍스트로 다시 다음 BLOB에 열을 변경하고 않았다 일 결국 무슨 짓을

ALTER TABLE t1 CHANGE c1 c1 BLOB; 
ALTER TABLE t1 CHANGE c1 c1 TEXT CHARACTER SET utf8; 

이었다

mysqldump -uuser -ppassword --opt --quote-names --skip-set-charset --default-character-set=latin1 dbname1 table1 > dump.sql 
mysql -uuser -ppassword --default-character-set=utf8 dbname1 < dump.sql