1

firebird で作成した既存のデータベースを使用してアプリケーションを開発しています。データベースからデータを取得してビューに表示しようとすると、Rails でそのエラーが表示されます。データベースに文字セットがないことに気付きました.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 は問題のあるフィールドです

この問題の解決にご協力いただければ幸いです。不足している情報がある場合は、お知らせください。私はおかしくなりそうだ!今からありがとう。

4

1 に答える 1

2

私はすでに問題を修正しました。エンコード機能を行に追加しただけ<td><%= abanit.ntercero %></td>で、次のようになります: <td><%= abanit.ntercero.encode('UTF-8', 'iso-8859-1') %></td>。この問題は、エンコードが ñ、ó、í、á などを含むラテン アルファベットを認識しなかったために発生しました。これが他の人に役立つことを願っています。ありがとう!

于 2012-09-21T04:40:17.053 に答える