2012-01-27 68 views
0

当我去插入到我的数据库的一个特定的记录时,我不断收到一个不正确的字符串值错误在我的Rake任务。我试着将它转换为UTF8后阅读了几个帖子,但仍然没有解决这个问题(不保证我做到了这一点)。任何想法,它可能是什么?我遗漏了什么?Rails 3.1和MySQL的Mysql ::错误:错误的字符串值:

MySQL服务器社区5.5

转换代码:

ic = Iconv.new('UTF-8//IGNORE', 'UTF-8') 

    @summary = ic.iconv(bug.summary << ' ')[0..-2] 

创建代码:

JiraBug.create(
       :issue => bug.key, 
       :summary => @summary, 
       :reporter_name => reporter_name, 
       :assignee_name => assignee_name, 
       :weight => weight,                       :issue_created => issue_created, 
       :issue_updated => issue_updated, 
       :jira_it_division_id => @it_division_id, 
       :jira_project_id => @project_id, 
       :jira_priority_id => @priority_id, 
       :jira_status_id => @status_id, 
       :jira_originating_phase_id => @originating_phase_id, 
       :jira_detection_phase_id => @detection_phase_id, 
       :jira_version_id => @version_id, 
       :jira_version_name => @version_name, 
       :death_burrito_application_id => @jira_id 
     ) 

犯规字符串:

"Instance Blueprints → aa-test-kim → Module/Domain Objects - there is a drop down title \"ID [REMOVEME]\". I don't think the 'removeme' belongs."

错误

Mysql::Error: Incorrect string value: '\xE2\x86\x92 aa...' for column 'summary' at row 1: INSERT INTO jira_bugs (assignee_name , created_at , death_burrito_application_id , issue , issue_created , issue_updated , jira_detection_phase_id , jira_it_division_id , jira_originating_phase_id , jira_priority_id , jira_project_id , jira_status_id , jira_version_id , jira_version_name , reporter_name , summary , updated_at , weight) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [1m[35m (1.0ms)[0m ROLLBACK Mysql::Error: Incorrect string value: '\xE2\x86\x92 aa...' for column 'summary' at row 1: INSERT INTO jira_bugs (assignee_name , created_at , death_burrito_application_id , issue , issue_created , issue_updated , jira_detection_phase_id , jira_it_division_id , jira_originating_phase_id , jira_priority_id , jira_project_id , jira_status_id , jira_version_id , jira_version_name , reporter_name , summary , updated_at , weight) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

回答

0

我最终做了一个记录特定的黑客攻击。

@summary = bug.summary.gsub(/→/,'>') 

不是最好的解决方案,但直到我找到一个更好的办法,这将要做的