在我的ramaze应用中显示£
符号时,我收到“不兼容的字符编码:CP850和UTF-8”。我怎样才能摆脱这个错误?我的头标记中有UTF-8元标记。
当我用键盘输入£
符号时会发生这种情况。看。
我已将以下代码放在我的ruby文件中,但它没有解决问题。
# encoding: UTF-8
Encoding.default_external = 'utf-8'
Encoding.default_internal = Encoding::UTF_8
答案 0 :(得分:4)
尝试强制编码以查看是否会导致问题消失:
your_string.force_encoding(::Encoding::UTF_8)
如果是这样,请深入了解您的应用并找出设置错误编码的原因,地点和原因。
它可能与服务器/网页相关,因为您所服务的页面由于标题而呈现为US-ASCII。或者服务器使用UTF-8以外的编码启动。或者其他类似的东西。您的脚本最终会得到一段非UTF-8的外部数据。
答案 1 :(得分:1)
Windows问题?尝试使用Iconv:
Iconv.conv('utf-8', "WINDOWS-1253", X)