2012-09-20 53 views
1

我正在開發一個應用程序,使用在firebird中創建的現有數據庫。當我嘗試從數據庫中獲取一些數據並將其顯示在視圖中時,rails會向我顯示該錯誤。我意識到數據庫沒有字符集,charset = none!所以,我試圖找出問題所在以及如何解決問題。我必須指出,數據庫不能被修改,因爲它是另一個應用程序的生產數據庫。當查詢獲得帶有波浪號(')的數據時,Rails僅顯示錯誤,否則它沒有問題。這是我得到的錯誤:不兼容的字符編碼:UTF-8和ASCII-8BIT rails 3和firebird

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與問題

領域我希望你能幫助我解決這個問題。如果有信息丟失,請告訴我。我要瘋了!從現在開始感謝。

回答

2

我已經解決了這個問題。我只是將編碼功能添加到行:<td><%= abanit.ntercero %></td>,現在看起來像這樣:<td><%= abanit.ntercero.encode('UTF-8', 'iso-8859-1') %></td>。問題出現了,因爲編碼器不能識別拉丁字母,包括:ñ,ó,í,等等。我希望這可以幫助其他人。謝謝!

相關問題