为什么我会收到ArgumentError:无效的%-encoding?

时间:2015-10-07 15:01:20

标签: ruby ramaze

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

我的控制器中包含字段post_id content POSTS到edit_post的HTML表单。我使用的是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

数据['内容']内的唯一符号是% , . '"

所需的行为是通过表单提交的POST数据更新数据库中的行。 This is the string我试图发帖。它包含此行,包含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'

Here is a stack trace.

0 个答案:

没有答案