不兼容的字符编码:UTF-8和ASCII-8BIT rails 3和firebird

时间:2012-09-20 03:47:16

标签: ruby-on-rails-3 encoding ruby-1.9 firebird2.5

我正在使用在firebird中创建的现有数据库开发应用程序。当我尝试从数据库中获取一些数据并在视图中显示它时,rails会向我显示该错误。我意识到数据库没有charset,charset = none!所以,我想弄清楚问题是什么以及如何解决它。我必须提到数据库无法修改,因为它是另一个应用程序的生产数据库。当查询使用波浪号(')获取数据时,Rails仅显示错误,否则它没有问题。这是我得到的错误:

Encoding::CompatibilityError in People#index

Showing /home/guillermo/Proyecto/dcerp/app/views/people/index.html.erb where line #57 raised:

incompatible character encodings: UTF-8 and ASCII-8BIT
Extracted source (around line #57):

54:     <% @abanits.each do |abanit| %>
55:       <tr>
56:         <td><%= abanit.init %></td>
57:         <td><%= abanit.ntercero %></td>
58:       </tr>
59:     <% end %>
60:   </tbody>
Rails.root: /home/guillermo/Proyecto/dcerp

ntercero是问题的领域

我希望你能帮助我解决这个问题。如果缺少信息,请告诉我。我要疯了!谢谢你们。

1 个答案:

答案 0 :(得分:2)

我已经解决了这个问题。我刚刚将编码函数添加到行<td><%= abanit.ntercero %></td>,现在它看起来像这样:<td><%= abanit.ntercero.encode('UTF-8', 'iso-8859-1') %></td>。问题出现了,因为编码不识别拉丁字母,包括:ñ,ó,í,á等。我希望这可以帮助其他人。谢谢!