레이크 작업을 사용하여 MS Access의 일부 기존 데이터를 MySQL로 마이그레이션하려고합니다. Windows XP에서 Ruby 1.8.6을 사용하고 있습니다.MySQL의 "잘못된 문자열 값"오류를 피하기 위해 데이터를 어떻게 처리 할 수 있습니까?
레일스에 대한 인코딩이 database.yml
에 "utf8"으로 설정되어 있습니다.
또한 MySQL의 기본 문자 집합은 utf8입니다.
는 데이터의99 %가 잘오고 하지만 때때로 나는 나에게 이런 오류 뭔가 제공하는 열 값을 얻을 것이다 :
Mysql::Error: Incorrect string value: '\x92 Comm...' for column 'name'
at row 1:
INSERT INTO `organizations` ([...])
VALUES('Lawyers’ Committee', [...])
그것은주고 것은 것처럼 보이는을 MySQL 문제는 "변호사"라는 단어의 "s"바로 뒤에 오는 아포스트로피입니다.
여기는 "TM"에 질식처럼
Mysql::Error: Incorrect string value: '\x99 aoc' for column 'department'
at row 1:
INSERT INTO `addresses`
[...]
'TRInfo™ aoc'
[....]
는 "TRInfo"후 같은데 ... 또 다른 하나입니다.
MySQL에서 질식 할 문자를 정화하기 위해 데이터를 실행할 수있는 Ruby 또는 Rails 메서드가 있습니까?
가장 이상적인 문자로 대체하는 것이 이상적입니다. 아포스트로피를 작은 따옴표로 바꾸고 TM 기호를 "TM"으로 바꾸는 것이 좋습니다.
또는 오류를 발생시키지 않고 그대로 문자를 저장하도록 MySQL을 구성 할 수 있다면 좋을 것입니다.
이 솔루션은 OP 질문에 "어떤 방법이 있습니까?"라고 대답하지 않습니다. – Gary