gpt4 book ai didi

ruby - 如何通过 Rack 中间件处理用户输入的无效字节序列?

转载 作者:太空宇宙 更新时间:2023-11-03 16:56:31 25 4
gpt4 key购买 nike

所以我们系统中的一些用户正在将文本复制并粘贴到我的应用程序中。在我的日志中,我偶尔会注意到这一点:

ArgumentError (invalid byte sequence in US-ASCII):
vendor/bundle/ruby/1.9.1/gems/activesupport-2.3.14/lib/active_support/core_ext/object/blank.rb:68:in `=~'
vendor/bundle/ruby/1.9.1/gems/activesupport-2.3.14/lib/active_support/core_ext/object/blank.rb:68:in `!~'
vendor/bundle/ruby/1.9.1/gems/activesupport-2.3.14/lib/active_support/core_ext/object/blank.rb:68:in `blank?'
vendor/bundle/ruby/1.9.1/gems/actionpack-2.3.14/lib/action_controller/response.rb:202:in `nonempty_ok_response?'
vendor/bundle/ruby/1.9.1/gems/actionpack-2.3.14/lib/action_controller/response.rb:188:in `handle_conditional_get!'
vendor/bundle/ruby/1.9.1/gems/actionpack-2.3.14/lib/action_controller/response.rb:141:in `prepare!'
vendor/bundle/ruby/1.9.1/gems/actionpack-2.3.14/lib/action_controller/base.rb:540:in `send_response'
vendor/bundle/ruby/1.9.1/gems/actionpack-2.3.14/lib/action_controller/base.rb:534:in `process'
vendor/bundle/ruby/1.9.1/gems/actionpack-2.3.14/lib/action_controller/filters.rb:606:in `process_with_filters'
vendor/bundle/ruby/1.9.1/gems/actionpack-2.3.14/lib/action_controller/base.rb:391:in `process'
vendor/bundle/ruby/1.9.1/gems/actionpack-2.3.14/lib/action_controller/base.rb:386:in `call'
vendor/bundle/ruby/1.9.1/gems/actionpack-2.3.14/lib/action_controller/routing/route_set.rb:438:in `call'

这里是请求的详细信息。注意无效字符。

Parameters: {"attendee"=>{"segment"=>"Middle Market \xE2\x80\x93 West Region"}}

问题是字符编码被关闭了。我的应用程序是为 UTF-8 设置的,我相信他们发送的是 ASCII 字符。我需要一种方法来过滤它,以便避免上述错误。

请注意,错误甚至在到达我的应用程序之前就已经出现了。因此,我假设最好的解决方案是 Rack 中间件,它可以过滤用户输入以确保其正确编码。

关于实现此目标的最佳方法有什么想法吗?如果无效字符被问号替换,我 100% 没问题。或者回复说您输入的字符无效。现在他们只是得到一个一般错误,而在 ajax 请求中他们什么也得不到。

谢谢。

最佳答案

关于ruby - 如何通过 Rack 中间件处理用户输入的无效字节序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7919847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com