【发布时间】:2016-04-14 15:14:12
【问题描述】:
我收到以下错误 [ActionView::Template::Error(不兼容的字符编码:ASCII-8BIT 和 UTF-8)]
这是日志...
Completed 500 Internal Server Error in 318ms
Jan 09 23:29:19 burro app/web.1: ActionView::Template::Error (incompatible character encodings: ASCII-8BIT and UTF-8):
Jan 09 23:29:19 burro app/web.1: 97: <!-- <td><%= row.notes.gsub("\n", "<br>").html_safe %></td> -->
Jan 09 23:29:19 burro app/web.1: 98: </tr>
Jan 09 23:29:19 burro app/web.1: 99: <% end %>
Jan 09 23:29:19 burro app/web.1: 100: </tbody>
Jan 09 23:29:19 burro app/web.1: 101: </table>
Jan 09 23:29:19 burro app/web.1: 102:
代码如下:
<td><%= row.notes.force_encoding("utf-8") %></td>
<!-- <td><%= row.notes.gsub("\n", "<br>").html_safe %></td> -->
</tr>
<% end %>
所有这些都在正确的 rb 和 erb 文件中?
<%# encoding: utf-8 %>
config.encoding = "utf-8"
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
@data.each do |sr|
sr.notes = sr.notes.to_s.force_encoding("UTF-8")
end
数据库中的数据是加密的,所以我无法在显示记录时对我的 MongoDB 数据运行查询以查看导致问题的特殊字符?
【问题讨论】:
-
config/application.rb应该包含config.encoding = "utf8" -
Encoding.default_external = Encoding::UTF_8 Encoding.default_internal = Encoding::UTF_8 这两个应该与开发或生产.rb文件一起配置
-
你的cmets我都做了,没有变化?
标签: ruby-on-rails mongodb encoding utf-8