在我的 ramaz 应用程序上显示 £ 符号时,我收到“不兼容的字符编码:CP850 和 UTF-8”

问题描述 投票:0回答:3

在我的 ramaz 应用程序上显示

£
符号时,我收到“不兼容的字符编码:CP850 和 UTF-8”。我怎样才能摆脱这个错误?我的 head 标签中有 UTF-8 元标签。

当我用键盘输入

£
符号时就会发生这种情况。看。

我已将以下代码放入我的 ruby 文件中,但它没有解决问题。

# encoding: UTF-8 
Encoding.default_external = 'utf-8'
Encoding.default_internal = Encoding::UTF_8
ruby encoding ramaze
3个回答
4
投票

尝试强制编码,看看是否可以解决问题:

your_string.force_encoding(::Encoding::UTF_8)

如果是这样,请深入研究您的应用程序并找出设置错误编码的内容、位置和原因。

这可能与服务器/网页相关,因为您正在提供的页面由于标头而呈现为 US-ASCII。或者服务器以 UTF-8 以外的编码启动。或者有其他效果。您的脚本最终会得到一段非 UTF-8 的外部数据。


1
投票

Windows问题?尝试使用 Iconv:

Iconv.conv('utf-8', "WINDOWS-1253", X)


0
投票

您必须将文本从 UTF-8 转换为另一种编码,然后再转换回 UTF-8。

content = content.force_encoding("ISO-8859-1").encode("utf-8", replace: nil)

更新:这个答案对我不起作用,但可能对你有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.