1

此代码以纯文本或 html 格式获取内容,并将其显示在页面上。

在我的控制器中带有post_id contentPOSTS字段的 HTML 表单。edit_post我正在使用Sequel ORMRamaze

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'

这是一个堆栈跟踪。

4

0 回答 0