我收到错误incompatible character encodings: UTF-8 and ASCII-8BIT
,当视图在数据库中发现一些字符,如:ñ、á、é等。
我的环境是:
- 轨道:3.2.5
- 红宝石:1.9.4p194
- 数据库:Oracle 10g (10.2.0.1.0)
我可以使用 Toad 将这些字符保存在数据库中。
我试着在我的观点的第一行写下这个:
<% # encoding: utf-8 %>
In enviroment.erb
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
但没有任何办法解决这个问题。
请有人提供一些建议来解决这个问题。
Thanks.
我也有同样的问题,经过几个小时的猴子补丁搜索后我解决了这个问题。
module ActiveSupport #:nodoc:
class SafeBuffer < String
def safe_concat(value)
value = force_utf8_encoding(value)
raise SafeConcatError unless html_safe?
original_concat(value)
end
def concat(value)
value = force_utf8_encoding(value)
if !html_safe? || value.html_safe?
super(value)
else
super(ERB::Util.h(value))
end
end
alias << concat
private
def force_utf8_encoding(value)
self.force_encoding('UTF-8').html_safe unless self.encoding.name == 'UTF-8'
value = (value).force_encoding('UTF-8').html_safe unless value.nil? || value.encoding.name == 'UTF-8'
value
end
end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)