此代码以纯文本或 html 格式获取内容,并将其显示在页面上。
在我的控制器中带有post_id
content
POSTS字段的 HTML 表单。edit_post
我正在使用Sequel ORM和Ramaze。
def edit_post
Encoding.default_external = 'utf-8'
data = request.subset(:content, :post_id)
shake = Post[data['post_id']]
data.delete('post_id');
shake.update(data); shake.save
end
data['content'] 中唯一的符号是%
,
.
'
和"
期望的行为是通过表单提交的 POST 数据更新数据库中的行。这是我试图发布的字符串。它包含包含 2 个百分号 ( %
) 的行:
A scientific study showed that men want more sex partners than women, in every country. Only 2% of lesbians have had over 1000 sexual partners, but 28% of gays have had over 1000.
表格行需要“内容”和“post_id”列。
%
用于更新数据库的符号似乎存在问题。我相信默认编码是 CP850。如何更改我的 Ramaze 应用程序以停止使用 CP850 并改用 UTF-8?
我有以下代码model/init.rb
Sequel::Model.plugin :force_encoding, 'UTF-8'
Encoding.default_external = 'utf-8'