【发布时间】:2012-11-16 09:49:39
【问题描述】:
我有一个简单的 html 表单,我想提交。它是登录表单。我在 ruby on rails 控制器上提交它。 当其中一个输入(电子邮件)的值中有一些特殊字符时,例如 č、ć、đ、š 或 ž。这些字符被替换为 ?特点。
如果我在输入字段 user?@domain.com 中有值,它将不会通过针对 "/\A[\w\d._%-]+\@[\w\d.-]+.[ 的评估\w]{2,4}\z/"
但例如,值 userž@domain.com 在 ruby 代码中被视为 user?@domain.com (使用 puts 方法),它通过了上面提到的正则表达式验证。
我正在使用 jruby 1.6.5.1 和 Rails 2.3.8
有谁知道这是怎么回事?
【问题讨论】:
-
Ruby 编码支持随着上一个主要版本而改变,因此提供您的 Ruby 和 Rails 版本可能会有用。
-
我认为 č、ć 等显示为 '?'在您的示例中,但它们仍然是相同的字符。或者您的意思是当它们最终存储在数据库中时,电子邮件将存储为“?”而不是 č、ć 等?
-
它永远不会进入数据库。我使用 puts 方法在控制台中查看它。
-
该值仍然有 č、ć 等,但这些字符显示为例如puts as '?',我不太明白你的问题是什么。
-
问题是如何获取真实值?所以我可以执行验证以避免提到的字符。
标签: ruby-on-rails forms post special-characters