Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Ruby编码问题_Html_Ruby On Rails_Ruby_Ruby On Rails 3_Encoding - Fatal编程技术网

Html Ruby编码问题

Html Ruby编码问题,html,ruby-on-rails,ruby,ruby-on-rails-3,encoding,Html,Ruby On Rails,Ruby,Ruby On Rails 3,Encoding,我正在将刮取的数据保存到web应用程序中,下面是一个示例参数: 400\xB0F. 这是一个网站上的“degree”字符,但是当我把它放到我的模型中时,我得到了UTF-8中可怕的无效字节序列 由于它来自web,我想我可能会尝试一些客户端编码,所以javascript将其转换为:400%B0F。这至少可以由ActiveRecord保存,没有任何问题,但Rails似乎在退出时再次逃逸,因此这些实体不会被浏览器解码,因此,我的show方法显示了整个编码字符串 我应该在哪里清理输入数据,对于不可预测的

我正在将刮取的数据保存到web应用程序中,下面是一个示例参数:

400\xB0F.
这是一个网站上的“degree”字符,但是当我把它放到我的模型中时,我得到了UTF-8中可怕的
无效字节序列

由于它来自web,我想我可能会尝试一些客户端编码,所以javascript将其转换为:
400%B0F。
这至少可以由ActiveRecord保存,没有任何问题,但Rails似乎在退出时再次逃逸,因此这些实体不会被浏览器解码,因此,我的
show
方法显示了整个编码字符串

我应该在哪里清理输入数据,对于不可预测的输入,什么方法可能是最好的


谢谢

也许您可以在表单标记中使用带有enctype=“multipart/form data”的二进制表单(如用于上载文件)。像这样,你可以用这个数据作为二进制数据吗


这可能取决于您如何处理这些数据。

URI。在我将其编码到客户端之后,unescape
就是一个诀窍。几年前,我在builder中解决了同样的问题。看看to_xs方法:

您可以需要生成器,并直接使用它(您可能希望将
false
传递给转义,否则您将获得实体转义输出)。要么这样,要么干脆窃取并改编源代码

更新:这是原始的、独立的库:

网站似乎是用CP-1252编码的。抱歉,我不知道你会如何解码这个。如果我是你,我会查找如何使用
String.encode
方法在编码之间进行转换。噢,哇,Sam Ruby的回答。我是个十足的书呆子